Commit f436230f authored by pete谢兆麟's avatar pete谢兆麟

Merge commit 'dc428ae0' into xiezhaolin

parents d72625df dc428ae0
This diff is collapsed.
......@@ -22,11 +22,11 @@ class YHBaseViewController: UIViewController {
gk_navLineHidden = true
gk_navBarAlpha = 0
//
#if DEBUG
IQKeyboardManager.shared.enable = true
#endif
}
override var prefersStatusBarHidden: Bool {
......
......@@ -325,6 +325,7 @@ extension YHInformationPerfectListVC : UITableViewDelegate,UITableViewDataSource
} else if indexPath.row == 1 {
//家庭程序信息
let vc = YHFamilyMemberInfoVC(orderId: orderId ?? 0)
vc.orderId = 133971
navigationController?.pushViewController(vc)
} else if indexPath.row == 2 {
//基本信息
......@@ -334,6 +335,8 @@ extension YHInformationPerfectListVC : UITableViewDelegate,UITableViewDataSource
} else if indexPath.row == 3 {
//学历/专业资格
let vc = YHEducationalQualificationVC()
// vc.orderId = orderId
vc.orderId = 133971
navigationController?.pushViewController(vc)
} else if indexPath.row == 4 {
......
......@@ -192,9 +192,6 @@ private extension YHBasicInfoFillView {
}
myTextView = textView
myTextView.delegate = self
// NotificationCenter.default.addObserver(self, selector: #selector(textViewDidChange?(<#T##textView: UITextView##UITextView#>)), name: textDidChangeNotification, object: nil)
textView.contentInset = UIEdgeInsets(top: -8, left: 0, bottom: 0, right: 0)
......
......@@ -81,6 +81,8 @@ enum YHFormAddItemType:Int {
case addChild = 1
case addBrother
case addDegree
case addEducation
case addCertificateInfo
}
// 表单具体条目类型
......@@ -189,6 +191,8 @@ enum YHFormDetailItemType:Int {
// 上课城市
case educationCity
// 证书信息
case certificateInfo
// 资格证书名称
case qualificationCertificateName
// 颁授机构全称
......@@ -218,6 +222,10 @@ class YHFormAddItem : YHFormItemProtocol
return "新增兄弟姐妹".local
case .addDegree:
return "增加学位信息".local
case .addEducation:
return "新增学历信息".local
case .addCertificateInfo:
return "新增证书信息".local
}
}
......@@ -481,6 +489,8 @@ class YHFormDetailItem : YHFormItemProtocol {
case .educationInfo:
return "".local
case .certificateInfo:
return "".local
case .universityFullName:
return "学校全称".local
case .educationStyle:
......@@ -510,9 +520,8 @@ class YHFormDetailItem : YHFormItemProtocol {
return "颁授国家/地区".local
case .conferCity:
return "颁授城市".local
}
}
func getSubTitle() -> String {
......
......@@ -14,7 +14,7 @@ class YHFamilyRequestViewModel {
//请求所有家庭成员信息
func getFamilyInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.familyInfoApi
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Family.familyInfoApi
YHHUD.show(.progress(message: "数据加载中..."))
......@@ -82,7 +82,7 @@ if let brother = dic["brother"], brother is [[String: Any]] {
YHHUD.show(.progress(message: "数据加载中..."))
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.familyInfoApi
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Family.familyInfoApi
let _ = YHNetRequest.postRequest(url: strUrl, params:params) {[weak self] json, code in
......@@ -109,7 +109,7 @@ if let brother = dic["brother"], brother is [[String: Any]] {
YHHUD.show(.progress(message: "数据加载中..."))
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.familyMemberDeleteApi
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Family.familyMemberDeleteApi
let _ = YHNetRequest.postRequest(url: strUrl, params:params) { json, code in
YHHUD.hide()
......
......@@ -21,7 +21,11 @@
print(selectType.title)
}
// 【扩展新类型】
1)先增加一个YHFormPickerViewType类型
2)再扩展其关联类型 YHFormPickerViewSubType
3)补充新增类型后的方法 YHFormPickerView的getSubType方法 YHFormPickerViewSubType的title和index方法
4)填充数据源 详情见 属性 dataDict 懒加载方法
*/
......@@ -209,10 +213,21 @@ class YHFormPickerView: UIView {
[YHFormPickerViewItem(type: .degreeLocation(.domestic)),
YHFormPickerViewItem(type: .degreeLocation(.forgin))],
// 专业证书
.professionCertificate:
[YHFormPickerViewItem(type: .professionCertificate(.CFA)),
YHFormPickerViewItem(type: .professionCertificate(.CFP)),
YHFormPickerViewItem(type: .professionCertificate(.FRM)),
YHFormPickerViewItem(type: .professionCertificate(.FIA)),
YHFormPickerViewItem(type: .professionCertificate(.CPA)),
YHFormPickerViewItem(type: .professionCertificate(.CIIA)),
YHFormPickerViewItem(type: .professionCertificate(.RFC)),
YHFormPickerViewItem(type: .professionCertificate(.ACCA)),
YHFormPickerViewItem(type: .professionCertificate(.CIA)),
YHFormPickerViewItem(type: .professionCertificate(.CMA)),
YHFormPickerViewItem(type: .professionCertificate(.CQF)),
YHFormPickerViewItem(type: .professionCertificate(.CIMA)),
YHFormPickerViewItem(type: .professionCertificate(.ACA))],
]
}()
......@@ -365,6 +380,8 @@ class YHFormPickerView: UIView {
return "选择学位"
case .profession:
return "职业"
case .professionCertificate:
return "选择证书名称"
}
}
}
......@@ -401,6 +418,10 @@ extension YHFormPickerView: UIPickerViewDelegate, UIPickerViewDataSource {
}
}
func rowSize(forComponent component: Int) -> CGSize {
return CGSize(width: KScreenWidth, height: 250)
}
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
let label = UILabel()
......@@ -556,8 +577,49 @@ extension YHFormPickerView {
} else if title.contains("其他") {
return .profession(.other)
}
case .professionCertificate:
if title.contains("CFA") {
return .professionCertificate(.CFA)
} else if title.contains("CFP") {
return .professionCertificate(.CFP)
} else if title.contains("FRM") {
return .professionCertificate(.FRM)
} else if title.contains("FIA") {
return .professionCertificate(.FIA)
} else if title.contains("CPA") {
return .professionCertificate(.CPA)
} else if title.contains("CIIA") {
return .professionCertificate(.CIIA)
} else if title.contains("RFC") {
return .professionCertificate(.RFC)
} else if title.contains("ACCA") {
return .professionCertificate(.ACCA)
} else if title.contains("CIA") {
return .professionCertificate(.CIA)
} else if title.contains("CMA") {
return .professionCertificate(.CMA)
} else if title.contains("CQF") {
return .professionCertificate(.CQF)
} else if title.contains("CIMA") {
return .professionCertificate(.CIMA)
} else if title.contains("英国皇家特许会计师") {
return .professionCertificate(.ACA)
}
}
return .none
}
......
......@@ -31,6 +31,8 @@ enum YHFormPickerViewType: Int {
case identity
// 颁发地区
case degreeLocation
// 专业证书
case professionCertificate
}
......@@ -157,6 +159,35 @@ enum YHPickerViewDegreeLocationType:Int {
case forgin = 2
}
enum YHPickerViewProfessionalCertificateType:Int {
// CFA(注册金融分析师)
case CFA = 0
// CFP(CFP证书是目前世界上权威的权威理财顾问认证项目之一)
case CFP
// FRM(金融风险管理师)
case FRM
// FIA(保险精算师)
case FIA
// CPA(注册会计师)
case CPA
// CIIA(注册国际投资分析师)
case CIIA
// RFC(财务顾问师)
case RFC
// ACCA(特许公认会计师)
case ACCA
// CIA(国际注册内部审计师)
case CIA
// CMA(美国管理会计师)
case CMA
// CQF(国际数量金融工程认证)
case CQF
// CIMA(管理会计师考试)
case CIMA
// The Associate Chartered Accountant(英国皇家特许会计师)
case ACA
}
enum YHFormPickerViewSubType {
case none
......@@ -170,6 +201,7 @@ enum YHFormPickerViewSubType {
case identity(YHPickerViewIdentityType)
case degreeLocation(YHPickerViewDegreeLocationType)
case profession(YHPicerViewProfessionType)
case professionCertificate(YHPickerViewProfessionalCertificateType)
var title:String {
switch self {
......@@ -279,6 +311,33 @@ enum YHFormPickerViewSubType {
case .profession(.other):
return "其他".local
case .professionCertificate(.CFA):
return "CFA(注册金融分析师)"
case .professionCertificate(.CFP):
return "CFP(CFP证书是目前世界上权威的权威理财顾问认证项目之一)"
case .professionCertificate(.FRM):
return "FRM(金融风险管理师)"
case .professionCertificate(.FIA):
return "FIA(保险精算师)"
case .professionCertificate(.CPA):
return "CPA(注册会计师)"
case .professionCertificate(.CIIA):
return "CIIA(注册国际投资分析师)"
case .professionCertificate(.RFC):
return "RFC(财务顾问师)"
case .professionCertificate(.ACCA):
return "ACCA(特许公认会计师)"
case .professionCertificate(.CIA):
return "CIA(国际注册内部审计师)"
case .professionCertificate(.CMA):
return "CMA(美国管理会计师)"
case .professionCertificate(.CQF):
return "CQF(国际数量金融工程认证)"
case .professionCertificate(.CIMA):
return "CIMA(管理会计师考试)"
case .professionCertificate(.ACA):
return "The Associate Chartered Accountant(英国皇家特许会计师)"
return ""
}
}
......@@ -391,7 +450,35 @@ enum YHFormPickerViewSubType {
return 10
case .profession(.other):
return 11
}
case .professionCertificate(.CFA):
return 1
case .professionCertificate(.CFP):
return 2
case .professionCertificate(.FRM):
return 3
case .professionCertificate(.FIA):
return 4
case .professionCertificate(.CPA):
return 5
case .professionCertificate(.CIIA):
return 6
case .professionCertificate(.RFC):
return 7
case .professionCertificate(.ACCA):
return 8
case .professionCertificate(.CIA):
return 9
case .professionCertificate(.CMA):
return 10
case .professionCertificate(.CQF):
return 11
case .professionCertificate(.CIMA):
return 12
case .professionCertificate(.ACA):
return 13
return -1
}
}
}
......@@ -94,6 +94,9 @@ extension YHOtherInfoFillViewController {
private func saveData() {
let model = otherInfoVM.otherInfoFillData
printLog(model?.toDictionary())
//保存
// let arr = basicInfoVM.arrBasicInfoSessionDataForEdit
//
......@@ -237,6 +240,10 @@ extension YHOtherInfoFillViewController : UITableViewDelegate,UITableViewDataSou
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHOtherInfoFillCell.self)
cell.selectionStyle = .none
cell.block = {
self.homeTableView.reloadData()
}
cell.dataModel = otherInfoVM.otherInfoFillData
return cell
}
......
......@@ -25,15 +25,13 @@ class YHOtherInfoFillModel: SmartCodable {
class Residence : SmartCodable {
var id: Int = -1
var country: String = ""
var startTime: String = ""
var endTime: String = ""
var start_time: String = ""
var end_time: String = ""
var orderID: Int = -1
var endTimeChecked: Bool = false
required init() {
}
}
......@@ -41,6 +39,7 @@ class Residence : SmartCodable {
class LanguageDetail : SmartCodable {
var schoolAddressAboard: Bool = false
var level: Int = -1
var levelDes : String = ""
var name: String = ""
var remark: String = ""
......@@ -52,21 +51,22 @@ class LanguageDetail : SmartCodable {
// MARK: - Profession
class Profession : SmartCodable{
var option: Int = -1
var optionDes : String = ""
var remark: String = ""
required init() {
}
}
// MARK: - Question
class Question : SmartCodable {
var professionalQualification : Int = -1
var professional_qualification : Int = -1
var paper : Int = -1
var scholarship : Int = -1
var mediaInterview : Int = -1
var academicAwards : String = ""
var otherInformation: String = ""
var media_interview : Int = -1
var academic_awards : String = ""
var professional_awards : String = ""
var other_information: String = ""
required init() {
}
......
//
// YHOtherInfoSessionView.swift
// galaxy
//
// Created by davidhuangA on 2024/2/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHOtherInfoSessionView: UIView {
static let viewH : CGFloat = 52
typealias Block = (Int) -> ()
var block: Block?
//0-默认只有title 1-带删除按钮 2-有subNameLabel 3-带默认图标
var type : Int = 0 {
didSet {
if type == 1 {
delButton.isHidden = false
} else if type == 2 {
subNameLable.isHidden = false
} else if type == 3 {
iconImageV.isHidden = false
}
}
}
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
//title
private lazy var nameLable : UILabel = {
let lable0 = UILabel(text: "居住信息")
lable0.textColor = UIColor.mainTextColor
lable0.font = UIFont.PFSC_M(ofSize: 17)
return lable0
}()
private lazy var subNameLable : UILabel = {
let lable0 = UILabel(text: "(是否有以下【辅助性】资料)")
lable0.textColor = UIColor.labelTextColor2
lable0.font = UIFont.PFSC_R(ofSize: 12)
lable0.isHidden = true
return lable0
}()
private lazy var bottomLine : UIView = {
let view = UIView()
view.backgroundColor = UIColor(hex: 0xF0F0F0)
return view
}()
private lazy var iconImageV : UIImageView = {
let view = UIImageView()
view.image = UIImage(named: "other_info_warning")
view.contentMode = .scaleAspectFill
view.isHidden = true
return view
}()
private lazy var delButton : UIButton = {
let btn = UIButton(type: .custom)
btn.setTitle("删除", for: .normal)
btn.setTitleColor(UIColor.failColor, for: .normal)
btn.titleLabel?.textAlignment = .right
btn.titleLabel?.font = UIFont.PFSC_R(ofSize: 14)
btn.isHidden = true
return btn
}()
private func setupUI() {
addSubview(bottomLine)
bottomLine.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.height.equalTo(0.5)
}
addSubview(nameLable)
nameLable.snp.makeConstraints { make in
make.left.equalToSuperview()
make.top.equalToSuperview()
make.bottom.equalTo(bottomLine.snp.top)
}
//subName
addSubview(subNameLable)
subNameLable.snp.makeConstraints { make in
make.left.equalTo(nameLable.snp.right)
make.centerY.equalTo(nameLable)
make.height.equalTo(20)
}
//iconImageV
addSubview(iconImageV)
iconImageV.snp.makeConstraints { make in
make.left.equalTo(nameLable.snp.right).offset(4)
make.centerY.equalTo(nameLable)
make.height.width.equalTo(16)
}
//delButton
addSubview(delButton)
delButton.snp.makeConstraints { make in
make.right.equalToSuperview()
make.centerY.equalTo(nameLable)
make.height.equalTo(44)
make.width.equalTo(44)
}
delButton.addTarget(self, action: #selector(clickDeleteBtn), for: .touchUpInside)
}
}
extension YHOtherInfoSessionView {
func updateTitle(title : String) {
nameLable.text = title
}
@objc func clickDeleteBtn() {
printLog("点击了 删除 按钮")
block?(self.tag)
}
}
//
// YHOtherResidenceFillView.swift
// galaxy
//
// Created by davidhuangA on 2024/2/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHOtherResidenceFillView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
var dataModel : Residence? {
didSet {
updateUI()
}
}
let nationView : YHOtherSelecteItemView = YHOtherSelecteItemView()
let startView : YHOtherSelecteItemView = YHOtherSelecteItemView()
let endView : YHOtherSelecteItemView = YHOtherSelecteItemView()
}
extension YHOtherResidenceFillView {
func setupUI() {
//1.国家
let view = nationView
view.updateKeyName(name: "国家", keyValue: "")
addSubview(view)
view.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
make.height.equalTo(YHOtherSelecteItemView.getViewHBy(type: 1))
}
let tap1 = UITapGestureRecognizer(target: self, action: #selector(tapCountry))
view.addGestureRecognizer(tap1)
//2.开始时间
let view2 = startView
view2.updateKeyName(name: "开始时间", keyValue: "")
addSubview(view2)
view2.snp.makeConstraints { make in
make.top.equalTo(view.snp.bottom)
make.left.right.equalToSuperview()
make.height.equalTo(YHOtherSelecteItemView.getViewHBy(type: 1))
}
let tap2 = UITapGestureRecognizer(target: self, action: #selector(tapStartDate))
view2.addGestureRecognizer(tap2)
//3.结束时间
let view3 = endView
view3.updateKeyName(name: "结束时间", keyValue: "")
addSubview(view3)
view3.snp.makeConstraints { make in
make.top.equalTo(view2.snp.bottom)
make.left.right.equalToSuperview()
make.height.equalTo(YHOtherSelecteItemView.getViewHBy(type: 1))
make.bottom.equalToSuperview()
}
let tap3 = UITapGestureRecognizer(target: self, action: #selector(tapEndDate))
view3.addGestureRecognizer(tap3)
}
func updateUI() {
guard let dataModel = dataModel else { return }
nationView.updateKeyName(name: "国家", keyValue: dataModel.country)
startView.updateKeyName(name: "开始时间", keyValue: dataModel.start_time)
endView.updateKeyName(name: "结束时间", keyValue: dataModel.end_time)
}
}
extension YHOtherResidenceFillView {
@objc func tapCountry(_ gestureRecognizer: UIPanGestureRecognizer) {
let vc = YHSelectCountryViewController()
vc.backLocationStringController = { country in
printLog(country)
self.nationView.updateKeyName(name: "国家", keyValue: country)
self.dataModel?.country = country
}
self.parentViewController?.navigationController?.pushViewController(vc)
}
@objc func tapStartDate(_ gestureRecognizer: UIPanGestureRecognizer) {
YHDatePickView.show(type: .yyyymmdd) { date in
printLog(date)
self.startView.updateKeyName(name: "开始时间", keyValue: date)
self.dataModel?.start_time = date
}
}
@objc func tapEndDate(_ gestureRecognizer: UIPanGestureRecognizer) {
YHDatePickView.show(type: .yyyymmdd) { date in
printLog(date)
self.endView.updateKeyName(name: "结束时间", keyValue: date)
self.dataModel?.end_time = date
}
}
}
//
// YHOtherSelecteItemView.swift
// galaxy
//
// Created by davidhuangA on 2024/2/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
enum YHOtherSelecteItemType: Int {
case unknow = 0
case language = 1 //语言能力
case skill = 2 //专业技能
}
class YHOtherSelecteItemView: UIView {
static let viewH : CGFloat = 52 // type == 1时的高度
static let viewH2 : CGFloat = 88 //type == 2时的高度
//1- 一行布局 2-2行布局
var type : Int = 1 {
didSet {
layoutIfNeeded()
}
}
//获取高度
static func getViewHBy(type : Int)->CGFloat {
return type == 1 ? viewH : viewH2
}
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
private lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = .mainTextColor
label.textAlignment = .left
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 14)
label.lineBreakMode = .byCharWrapping
return label
}()
private lazy var textField: UITextField = {
let label = UITextField()
label.placeholder = "请选择"
label.isEnabled = false
label.font = UIFont.PFSC_R(ofSize: 14)
return label
}()
private lazy var bottomLine : UIView = {
let view = UIView()
view.backgroundColor = UIColor(hex: 0xF0F0F0)
return view
}()
var title:String? {
didSet {
if let question = title {
let str = "* "+question
let attributes: [NSAttributedString.Key: Any] = [
.font: UIFont.PFSC_R(ofSize: 14),
.foregroundColor: UIColor.mainTextColor
]
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
let starRange = NSRange(location: 0, length: 1)
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.failColor, range: starRange)
titleLabel.attributedText = questionAttrStr
}
}
}
var subHoldView : UIView = {
let view = UIView()
return view
}()
override func layoutSubviews() {
super.layoutSubviews()
if type == 1 {
bottomLine.snp.makeConstraints { make in
make.bottom.left.right.equalToSuperview()
make.height.equalTo(0.5)
}
titleLabel.snp.makeConstraints { make in
make.top.left.bottom.equalToSuperview()
make.width.equalTo(80)
}
subHoldView.snp.makeConstraints { make in
make.top.right.bottom.equalToSuperview()
make.left.equalTo(titleLabel.snp.right).offset(40)
}
} else if type == 2 {
bottomLine.snp.makeConstraints { make in
make.bottom.left.right.equalToSuperview()
make.height.equalTo(0.5)
}
subHoldView.snp.makeConstraints { make in
make.bottom.equalTo(bottomLine.snp.top)
make.right.left.equalToSuperview()
make.height.equalTo(52)
}
titleLabel.snp.makeConstraints { make in
make.bottom.equalTo(subHoldView.snp.top)
make.left.right.equalToSuperview()
make.height.equalTo(20)
}
} else {
}
}
}
extension YHOtherSelecteItemView {
func setupUI() {
addSubview(bottomLine)
addSubview(titleLabel)
addSubview(subHoldView)
title = "开始时间"
let rightIcon = UIImageView()
rightIcon.image = UIImage(named: "form_right_arrow")
rightIcon.contentMode = .scaleAspectFill
subHoldView.addSubview(rightIcon)
rightIcon.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.right.equalToSuperview()
make.width.height.equalTo(20)
}
subHoldView.addSubview(textField)
textField.snp.makeConstraints { make in
make.right.equalTo(rightIcon.snp.left).offset(-4)
make.bottom.top.left.equalToSuperview()
}
}
}
extension YHOtherSelecteItemView {
func updateKeyName(name : String, keyValue : String) {
title = name
textField.text = keyValue
}
}
//
// YHOtherTextViewItemView.swift
// galaxy
//
// Created by davidhuangA on 2024/2/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
enum YHOtherTextViewItemType: Int {
case unknowAwards = 0
case professionAwards = 5 //专业奖项
case academicAwards = 6 //学业奖项
case otherAwards = 7 //其他
}
class YHOtherTextViewItemView: UIView, UITextViewDelegate {
static let viewH : CGFloat = 172.0
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
typealias Block = (String) -> ()
var block: Block?
var itemType : YHOtherTextViewItemType = .unknowAwards {
didSet {
switch itemType {
case .unknowAwards:
kTipsString = "请输入"
break
case .professionAwards:
kTipsString = "请填写您在所属的专业界别内曾获取由国家或国际认可/著名的团体颁授的专业资格、曾取得的奖项等"
break
case .academicAwards:
kTipsString = "请填写您的学业成绩、曾取得的奖项等"
break
case .otherAwards:
kTipsString = "请填写其他能对申请带来帮助的重要资料(如:拥有有利于申请的社会任职、相关国际人脉/业务或随行人员所具备的优势点等)"
break
}
tipsLabel.text = kTipsString
}
}
private lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = .mainTextColor
label.textAlignment = .left
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 14)
label.lineBreakMode = .byCharWrapping
label.text = "5、专业奖项"
return label
}()
private lazy var tipsLabel: UILabel = {
let label = UILabel()
label.textColor = .placeHolderColor
label.textAlignment = .left
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 14)
label.lineBreakMode = .byCharWrapping
label.text = "5、专业奖项"
return label
}()
private lazy var bottomLine : UIView = {
let view = UIView()
view.backgroundColor = UIColor(hex: 0xF0F0F0)
return view
}()
private lazy var additionHoldView : UIView = {
let view = UIView()
view.backgroundColor = UIColor.contentBkgColor
view.layer.cornerRadius = kCornerRadius6
view.clipsToBounds = true
return view
}()
private var myTextView : UITextView!
private var kTipsString : String = "如选择“是”,请详细说明"
}
private extension YHOtherTextViewItemView {
func setupUI() {
backgroundColor = .clear
// title = "1、是否曾在香港或其他地方因任何罪行或违法行为被定罪?"
addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.top.equalTo(kMargin)
make.left.right.equalToSuperview()
make.height.equalTo(20)
}
addSubview(additionHoldView)
additionHoldView.snp.makeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom).offset(kMargin)
make.left.right.equalToSuperview()
make.height.equalTo(104)
}
let textView : UITextView = UITextView()
textView.backgroundColor = .clear
textView.font = UIFont.PFSC_R(ofSize: 14)
additionHoldView.addSubview(textView)
textView.snp.makeConstraints { make in
make.edges.equalTo(0)
}
myTextView = textView
myTextView.delegate = self
myTextView.contentInset = UIEdgeInsets(top: 12, left: 12, bottom: 12, right: 12)
additionHoldView.addSubview(tipsLabel)
tipsLabel.snp.makeConstraints { make in
make.top.equalTo(20)
make.left.equalTo(16)
make.right.equalTo(-12)
}
// tipsLabel.text = kTipsString
addSubview(bottomLine)
bottomLine.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.height.equalTo(0.5)
make.bottom.equalToSuperview()
}
}
}
extension YHOtherTextViewItemView : UITextFieldDelegate {
internal func textViewDidChange(_ textView: UITextView) {
if textView.text == "" {
tipsLabel.isHidden = false
} else {
tipsLabel.isHidden = true
}
self.block?(textView.text)
}
}
extension YHOtherTextViewItemView {
func updateUI(title : String,value : String, type : YHOtherTextViewItemType = .unknowAwards) {
titleLabel.text = title
myTextView.text = value
itemType = type
if value.count > 0 {
tipsLabel.isHidden = true
} else {
tipsLabel.isHidden = false
}
}
}
//
// YHOtherYesOrNoItemView.swift
// galaxy
//
// Created by davidhuangA on 2024/2/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHOtherYesOrNoItemView: UIView, UITextViewDelegate {
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
typealias Block = (Int) -> ()
var block: Block?
private let btnWidth = 70.0
private let btnHeight = 32.0
private let btnTitleSelectColor = UIColor.brandMainColor
private let btnTitleDefaultColor = UIColor.mainTextColor
private let btnBgDefaultColor = UIColor.contentBkgColor
private let btnBgSelectColor = UIColor.brandMainColor.withAlphaComponent(0.08)
private let answerBaseTag = 9527
private lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = .mainTextColor
label.textAlignment = .left
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 14)
label.lineBreakMode = .byCharWrapping
return label
}()
private lazy var answer1Btn: UIButton = {
let btn = UIButton()
btn.setTitle("否", for: .normal)
btn.titleLabel?.font = UIFont.PFSC_R(ofSize: 14)
btn.setTitleColor(btnTitleDefaultColor, for: .normal)
btn.backgroundColor = btnBgDefaultColor
btn.layer.cornerRadius = btnHeight/2.0
btn.layer.masksToBounds = true
btn.layer.borderWidth = 1
btn.layer.borderColor = UIColor.clear.cgColor
btn.tag = answerBaseTag
btn.addTarget(self, action: #selector(didClickResponseBtn(btn:)), for: .touchUpInside)
return btn
}()
private lazy var answer2Btn: UIButton = {
let btn = UIButton()
btn.setTitle("是", for: .normal)
btn.titleLabel?.font = UIFont.PFSC_R(ofSize: 14)
btn.setTitleColor(btnTitleDefaultColor, for: .normal)
btn.backgroundColor = btnBgDefaultColor
btn.layer.cornerRadius = btnHeight/2.0
btn.layer.masksToBounds = true
btn.layer.borderWidth = 1
btn.layer.borderColor = UIColor.clear.cgColor
btn.tag = answerBaseTag+1
btn.addTarget(self, action: #selector(didClickResponseBtn(btn:)), for: .touchUpInside)
return btn
}()
private lazy var bottomLine : UIView = {
let view = UIView()
view.backgroundColor = UIColor(hex: 0xF0F0F0)
return view
}()
var title:String? {
didSet {
if let question = title {
let str = "* "+question
let attributes: [NSAttributedString.Key: Any] = [
.font: UIFont.PFSC_R(ofSize: 14),
.foregroundColor: UIColor.mainTextColor
]
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
let starRange = NSRange(location: 0, length: 1)
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.failColor, range: starRange)
titleLabel.attributedText = questionAttrStr
}
}
}
private var lastSelectedBtn : UIButton?
}
private extension YHOtherYesOrNoItemView {
func setupUI() {
backgroundColor = .clear
title = "1、您是否有行业内的专业资格证书?"
addSubview(titleLabel)
addSubview(answer2Btn)
addSubview(answer1Btn)
titleLabel.snp.makeConstraints { make in
make.top.equalTo(kMargin)
make.left.right.equalToSuperview()
}
answer1Btn.snp.makeConstraints { make in
make.size.equalTo(CGSize(width: btnWidth, height: btnHeight))
make.left.equalTo(titleLabel.snp.left)
make.top.equalTo(titleLabel.snp.bottom).offset(12)
}
answer2Btn.snp.makeConstraints { make in
make.size.equalTo(CGSize(width: btnWidth, height: btnHeight))
make.left.equalTo(answer1Btn.snp.right).offset(12)
make.top.equalTo(answer1Btn.snp.top)
}
addSubview(bottomLine)
bottomLine.snp.makeConstraints { make in
make.top.equalTo(answer1Btn.snp.bottom).offset(12)
make.left.right.equalToSuperview()
make.height.equalTo(0.5)
make.bottom.equalToSuperview()
}
}
@objc func didClickResponseBtn(btn: UIButton) {
printLog("点击了按钮哈 \(btn.tag)")
if lastSelectedBtn == btn {
printLog("连续点击了同一个按钮......")
return
}
lastSelectedBtn = btn
btn.isSelected = true
updateAnswerButton(btn, true)
if btn == answer1Btn {
answer2Btn.isSelected = false
updateAnswerButton(answer2Btn, false)
} else {
answer1Btn.isSelected = false
updateAnswerButton(answer1Btn, false)
}
self.block?(answer2Btn.isSelected == true ? 2 : 1)
}
// 更新答案按钮选中状态
private func updateAnswerButton(_ btn:UIButton, _ isSelect:Bool) {
btn.layer.borderColor = (isSelect ? btnTitleSelectColor : .clear).cgColor
btn.setTitleColor((isSelect ? btnTitleSelectColor : btnTitleDefaultColor), for: .normal)
btn.backgroundColor = (isSelect ? btnBgSelectColor : btnBgDefaultColor)
}
}
extension YHOtherYesOrNoItemView {
func updateUI(title : String , answer : Int) {
self.title = title
if answer == 2 {
didClickResponseBtn(btn: answer2Btn)
} else if answer == 1 {
didClickResponseBtn(btn: answer1Btn)
}
}
}
......@@ -10,14 +10,136 @@ import UIKit
class YHOtherInfoFillViewModel: YHBaseViewModel {
var otherInfoFillData : YHOtherInfoFillModel?
var arrLanguage : [[String : String]] = [
["id":"1",
"title": "中文及英文",
"dec": "国外大学(英语国家)毕业,英文授课,获得学位证。(如为中外联合办学,在中国上课的,不算)",
],
[
"id": "2",
"title": "中文及英文",
"dec": " 有近两年的雅思或托福成绩单(雅思考试G类或A类总分达6分;托福笔试达550分,计算机达213分,网考达80分)",
],
[
"id": "4",
"title": "中文及另一种外语",
"dec": "非英文的外语,如:法文、日文等(需提供相关证书)",
],
[
"id": "5",
"title": "仅中文",
"dec": "",
],
[
"id": "6",
"title": "仅英文",
"dec": "",
],
]
var arrSkill : [[String : String]] = [
[
"title": "学术研究及教育",
"dec": "幼儿教育、高等教育、学术研究",
"val": "",
"value": "1",
],
[
"title": "建筑、测量、工程及建造",
"dec": "园景设计、建筑、测量、土木/电机/机器/机构/环境工程",
"val": "",
"value": "2",
],
[
"title": "艺术及文化",
"dec": "表演艺术、美术、博物馆、图书馆、摄影",
"val": "",
"value": "3",
],
[
"title": "广播及娱乐",
"dec": "广播及节目制作、电影、录像及电视制作、唱片及音乐出版",
"val": "",
"value": "4",
],
[
"title": "业务支援及人力资源",
"dec": "业务咨询顾问、公司秘书、行政支援、人事管理、招聘服务、公关关系服务、广告、信息服务",
"val": "",
"value": "5",
],
[
"title": "餐饮服务及旅游",
"dec": "酒吧、餐厅、酒店、旅行代理",
"val": "",
"value": "6",
],
[
"title": "商业及贸易",
"dec": "进出口、零售、批发",
"val": "",
"value": "7",
],
[
"title": "金融及会计服务",
"dec": "会计、银行、保险、证券、投资银行",
"val": "",
"value": "8",
],
[
"title": "医疗保健及兽医服务",
"dec": "西医药、中医药、牙科服务、医学科技、职业治疗、护理、兽医服务",
"val": "",
"value": "9",
],
[
"title": "资讯科技及电讯",
"dec": "资讯科技顾问、固网及无线通信",
"val": "",
"value": "10",
],
[
"title": "法律服务",
"dec": "法律事务",
"val": "",
"value": "11",
],
[
"title": "物流运输",
"dec": "物流、空运、海运、陆运",
"val": "",
"value": "12",
],
[
"title": "工业制造",
"dec": "电机、电子、食物及饮料、化工、金属、玩具、纺织、钟表、珠宝、印刷及出版",
"val": "",
"value": "13",
],
[
"title": "体育运动",
"dec": "体育运动",
"val": "",
"value": "14",
],
[
"title": "其他",
"example": "",
"val": "",
"value": "15",
"dec": ""
],
]
}
extension YHOtherInfoFillViewModel {
//获取其他资料信息
func getOtherInfo( params:[String : Any],callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
// createOrgBasiceInfoData()
// callBackBlock(true,nil)//先返回数据 让界面展示相关的UI
// createOrgBasiceInfoData()
// callBackBlock(true,nil)//先返回数据 让界面展示相关的UI
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.otherInfoFillApi
......@@ -37,6 +159,9 @@ extension YHOtherInfoFillViewModel {
}
self.otherInfoFillData = resultModel
handleData()
//根据返回值 组装 真实的数据
callBackBlock(true,nil)
} failBlock: { err in
......@@ -57,13 +182,13 @@ extension YHOtherInfoFillViewModel {
return
}
printLog("model 是 ==> \(model)")
// let dic = model.data?.peel
// guard let resultModel = YHBasicInfoFillModel.deserialize(dict: dic as? [AnyHashable : Any]) else {
// callBackBlock(false,nil)
// return
// }
//
// self.dataModelForBasicInfo = resultModel
// let dic = model.data?.peel
// guard let resultModel = YHBasicInfoFillModel.deserialize(dict: dic as? [AnyHashable : Any]) else {
// callBackBlock(false,nil)
// return
// }
//
// self.dataModelForBasicInfo = resultModel
//根据返回值 组装 真实的数据
callBackBlock(true,nil)
} failBlock: { err in
......@@ -72,3 +197,36 @@ extension YHOtherInfoFillViewModel {
}
}
extension YHOtherInfoFillViewModel {
func handleData() {
if let language = self.otherInfoFillData?.language_detail {
if language.level > 0 {
let target = String(language.level)
for(_,item) in arrLanguage.enumerated() {
if target == item["id"] {
language.levelDes = item["title"] ?? ""
break
}
}
}
}
if let profession = self.otherInfoFillData?.profession {
if profession.option > 0 {
let target = String(profession.option)
for(_,item) in arrSkill.enumerated() {
if target == item["value"] {
profession.optionDes = item["title"] ?? ""
break
}
}
}
}
}
}
......@@ -24,8 +24,6 @@ class YHPersonInfoSessionView: UIView {
let lable0 = UILabel(text: "--")
lable0.textColor = UIColor.mainTextColor
lable0.font = UIFont.PFSC_M(ofSize: 17)
// lable0.numberOfLines = 0
// lable0.lineBreakMode = .byWordWrapping
return lable0
}()
......@@ -48,7 +46,6 @@ class YHPersonInfoSessionView: UIView {
make.top.equalToSuperview()
make.bottom.equalTo(bottomLine.snp.top)
}
// nameLable.backgroundColor = .yellow//for test hjl
}
}
......
......@@ -80,7 +80,7 @@ class YHProfessionalQualificationVC: YHBaseViewController {
let title0 = YHFormTitleItem(type: .mainApplicantEducation)
let item00 = YHFormDetailItem(type: .qualificationCertificateName)
item00.placeHolder = "请输入资格证书名称".local
item00.placeHolder = "请选择资格证书名称".local
let item01 = YHFormDetailItem(type: .conferAgencyFullName)
item01.placeHolder = "请输入颁授机构全称".local
let item02 = YHFormDetailItem(type: .conferTime)
......@@ -194,7 +194,16 @@ extension YHProfessionalQualificationVC : UITableViewDelegate, UITableViewDataSo
}
if item is YHFormDetailItem {
let detailItem = item as! YHFormDetailItem
if detailItem.type == .conferTime { // 授权年份
if detailItem.type == .qualificationCertificateName { // 资格证书名称
YHFormPickerView.show(type: .professionCertificate, selectType: .professionCertificate(.ACA)) {
[weak self] selectType in
guard let self = self else { return }
}
} else if detailItem.type == .conferTime { // 授权年份
YHDatePickView.show(type: .yyyy) {
[weak self] date in
......@@ -250,13 +259,13 @@ extension YHProfessionalQualificationVC : UITableViewDelegate, UITableViewDataSo
if item is YHFormDetailItem {
let detailItem = item as! YHFormDetailItem
if detailItem.type == .conferAgencyFullName
|| detailItem.type == .qualificationCertificateName {
if detailItem.type == .conferAgencyFullName {
return .inputText
}
if detailItem.type == .conferTime
|| detailItem.type == .conferCountry
|| detailItem.type == .conferCity {
|| detailItem.type == .conferCity
|| detailItem.type == .qualificationCertificateName{
return .selectSheet
}
......
//
// YHEducationInfo.swift
// galaxy
//
// Created by edy on 2024/2/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
class YHEducationListInfo: SmartCodable {
var eduList: [YHEducationInfo]?
var eduCount: Int = 0
var quaList: [YHQualificationInfo]?
var quaCount: Int = 0
var qualification: Int = 0
var graduate: Int = 0
var married: Int = 0
enum CodingKeys: String, CodingKey {
case eduList = "edu_list"
case eduCount = "edu_count"
case quaList = "qua_list"
case quaCount = "qua_count"
case qualification = "qualification"
case graduate = "graduate"
case married = "married"
}
required init() {
}
}
class YHEducationInfo: SmartCodable {
var id: Int = -1
var orderId: Int = -1
var college: String?
var background: String?
var professional: String?
var admissionTime: String?
var graduateTime: String?
var vacantNum: Int = 0
enum CodingKeys: String, CodingKey {
case id = "id"
case orderId = "order_id"
case college = "college"
case background = "background"
case professional = "professional"
case admissionTime = "admission_time"
case graduateTime = "graduate_time"
case vacantNum = "vacant_num"
}
required init() {
}
}
class YHQualificationInfo: SmartCodable {
var id: Int = -1
var orderId: Int = -1
var qualification: String?
var vacantNum: Int = 0
enum CodingKeys: String, CodingKey {
case id = "id"
case orderId = "order_id"
case qualification = "qualification"
case vacantNum = "vacant_num"
}
required init() {
}
}
class YHEducationDetailInfo: SmartCodable {
var id: Int = 0
var orderId: Int = 0
var college: String?
var isTop: Int = 0
var type: String?
var admissionTime: String?
var graduateTime: String?
var background: String?
var professional: String?
var degreeType: String?
var remark: String?
var average: String?
var schoolAddress: YHSchoolAddress?
var schoolAddressAboard: Int = 0
var oldId: Int = 0
var createdAt: String?
var updatedAt: String?
var deletedAt: SmartAny?
var isShow: Int = 0
var operatorName: SmartAny?
var operatorEnglishName: SmartAny?
var operatorId: Int = 0
var matchListing: Int = 0
var createFromAppid: Int = 0
var updateFromAppid: Int = 0
var customerCenterId: Int = 0
enum CodingKeys: String, CodingKey {
case id = "id"
case orderId = "order_id"
case college = "college"
case isTop = "is_top"
case type = "type"
case admissionTime = "admission_time"
case graduateTime = "graduate_time"
case background = "background"
case professional = "professional"
case degreeType = "degree_type"
case remark = "remark"
case average = "average"
case schoolAddress = "school_address"
case schoolAddressAboard = "school_address_aboard"
case oldId = "old_id"
case createdAt = "created_at"
case updatedAt = "updated_at"
case deletedAt = "deleted_at"
case isShow = "is_show"
case operatorName = "operator_name"
case operatorEnglishName = "operator_english_name"
case operatorId = "operator_id"
case matchListing = "match_listing"
case createFromAppid = "create_from_appid"
case updateFromAppid = "update_from_appid"
case customerCenterId = "customer_center_id"
}
required init() {
}
// 学校是否在国外 默认是在国内
func isSchoolInAboard() -> Bool {
guard let schoolAddress = schoolAddress else { return false }
guard let country = schoolAddress.country else { return false }
if country.contains("中国") {
return false
}
return true
}
}
class YHSchoolAddress: Codable {
var area: [String]?
var country: String?
var foreign: String?
enum CodingKeys: String, CodingKey {
case area = "area"
case country = "country"
case foreign = "foreign"
}
required init(area: [String]?, country: String?, foreign: String?) {
self.area = area
self.country = country
self.foreign = foreign
}
}
//
// YHEducationRequestViewModel.swift
// galaxy
//
// Created by edy on 2024/2/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHEducationRequestViewModel {
// 学历和专业信息
var educationInfo: YHEducationListInfo?
// 学历详情信息
var educationDetailInfo:YHEducationDetailInfo?
// 请求学历和专业证书信息
func requestEducationInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
YHHUD.show(.progress(message: "数据加载中..."))
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Education.getEducationAndQulificationInfoApi
let _ = YHNetRequest.getRequest(url: strUrl, params:params) {[weak self] json, code in
YHHUD.hide()
guard let self = self else { return }
guard let model = NetBaseModel.deserialize(dict: json) else {
let error : YHErrorModel = YHErrorModel(errorCode:YHErrorCode.dictParseError.rawValue,errorMsg: YHErrorCode.dictParseError.description())
callBackBlock(false,error)
return
}
printLog("model 是 ==> \(model)")
let dic = model.data?.peel as? [AnyHashable : Any]
guard let resultModel = YHEducationListInfo.deserialize(dict: dic as? [AnyHashable : Any]) else {
callBackBlock(false,nil)
return
}
educationInfo = resultModel
callBackBlock(true,nil)
} failBlock: { err in
callBackBlock(false,err)
}
}
// 获取学历详情
func getEducationDetailInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
YHHUD.show(.progress(message: "数据加载中..."))
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Education.getEducationDetailInfoApi
let _ = YHNetRequest.getRequest(url: strUrl, params:params) {[weak self] json, code in
YHHUD.hide()
guard let self = self else { return }
guard let model = NetBaseModel.deserialize(dict: json) else {
let error : YHErrorModel = YHErrorModel(errorCode:YHErrorCode.dictParseError.rawValue,errorMsg: YHErrorCode.dictParseError.description())
callBackBlock(false,error)
return
}
printLog("model 是 ==> \(model)")
let dic = model.data?.peel as? [AnyHashable : Any]
guard let resultModel = YHEducationDetailInfo.deserialize(dict: dic as? [AnyHashable : Any]) else {
callBackBlock(false,nil)
return
}
educationDetailInfo = resultModel
callBackBlock(true,nil)
} failBlock: { err in
callBackBlock(false,err)
}
}
// 保存学历
func saveEducationInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
YHHUD.show(.progress(message: "数据加载中..."))
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Education.saveEducationInfoApi
let _ = YHNetRequest.postRequest(url: strUrl, params:params) {[weak self] json, code in
YHHUD.hide()
guard let self = self else { return }
guard let model = NetBaseModel.deserialize(dict: json) else {
let error : YHErrorModel = YHErrorModel(errorCode:YHErrorCode.dictParseError.rawValue,errorMsg: YHErrorCode.dictParseError.description())
callBackBlock(false,error)
return
}
printLog("model 是 ==> \(model)")
if model.code == NetWorkCode.success.rawValue {
callBackBlock(true,nil)
} else {
callBackBlock(false, nil)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
}
//
// YHQuestionInfo.swift
// galaxy
//
// Created by edy on 2024/2/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
class YHQuestionInfo: SmartCodable, YHFormItemProtocol {
var key: String = ""
var question: String = ""
var answer: Int = 0
enum CodingKeys: String, CodingKey {
case key = "key"
case question = "question"
case answer = "answer"
}
required init() {
}
func getTitle() -> String {
return question
}
func getSubTitle() -> String {
return ""
}
}
extension YHQuestionInfo {
// 【问题】学历证书姓名及出生日期正确性
static func getEducationQuestion() -> [YHQuestionInfo] {
let path = Bundle.main.path(forResource: "YHQuestionList", ofType: "plist")
let questions:[Dictionary] = NSArray(contentsOfFile:path!) as! [Dictionary<String, Any>]
var res:[YHQuestionInfo] = []
for dict in questions {
guard let questionInfo = YHQuestionInfo.deserialize(dict: dict as? [AnyHashable : Any]) else {
continue
}
res.append(questionInfo)
}
return res
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>key</key>
<string>qualification</string>
<key>question</key>
<string>您的所有学历及资格证书上的姓名及出生日期,是否与身份证完全一致 ?(例如:身份证上是【张四】。学位证上是【张三】,则为不相同)</string>
<key>answer</key>
<integer>0</integer>
</dict>
<dict>
<key>key</key>
<string>graduate</string>
<key>question</key>
<string>您配偶的大学毕业证和学位证上的姓名及出生日期,是否与身份证完全一致?</string>
<key>answer</key>
<integer>0</integer>
</dict>
</array>
</plist>
......@@ -13,7 +13,7 @@ class YHEducationInfoCell: UITableViewCell {
static let cellReuseIdentifier = "YHEducationInfoCell"
let horizonalGap = 18.0
private lazy var titleLabel: UILabel = {
lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = .mainTextColor
label.textAlignment = .left
......@@ -21,7 +21,7 @@ class YHEducationInfoCell: UITableViewCell {
return label
}()
private lazy var subTitleLabel: UILabel = {
lazy var subTitleLabel: UILabel = {
let label = UILabel()
label.textColor = .labelTextColor2
label.textAlignment = .left
......@@ -30,7 +30,7 @@ class YHEducationInfoCell: UITableViewCell {
return label
}()
private lazy var timeLabel: UILabel = {
lazy var timeLabel: UILabel = {
let label = UILabel()
label.textColor = .labelTextColor2
label.textAlignment = .right
......@@ -38,16 +38,6 @@ class YHEducationInfoCell: UITableViewCell {
return label
}()
private lazy var tipsLabel: UILabel = {
let label = UILabel()
label.textColor = .failColor
label.textAlignment = .left
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 12)
label.isHidden = true
return label
}()
private lazy var arrowImgView: UIImageView = {
let imgView = UIImageView(image: UIImage(named: "form_right_arrow"))
return imgView
......@@ -83,15 +73,10 @@ class YHEducationInfoCell: UITableViewCell {
contentView.addSubview(subTitleLabel)
contentView.addSubview(timeLabel)
contentView.addSubview(arrowImgView)
contentView.addSubview(tipsLabel)
contentView.addSubview(bottomLine)
titleLabel.setContentCompressionResistancePriority(.required, for: .horizontal)
titleLabel.text = "啊发沙发沙发"
subTitleLabel.text = "法术法"
timeLabel.text = "2141234124214123412421412341242141234124"
titleLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(horizonalGap)
make.right.equalTo(timeLabel.snp.left).offset(-8)
......@@ -112,6 +97,7 @@ class YHEducationInfoCell: UITableViewCell {
subTitleLabel.snp.makeConstraints { make in
make.left.equalTo(titleLabel)
make.top.equalTo(titleLabel.snp.bottom).offset(4)
make.bottom.equalToSuperview().offset(-16)
make.right.equalToSuperview().offset(-horizonalGap)
}
......@@ -121,31 +107,5 @@ class YHEducationInfoCell: UITableViewCell {
make.height.equalTo(1.0)
make.bottom.equalToSuperview()
}
setTips("asdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfaasdfafasdfasfa", isShow: true)
}
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(subTitleLabel.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(subTitleLabel.snp.bottom)
make.height.equalTo(0)
make.bottom.equalToSuperview().offset(-16)
}
}
self.setNeedsLayout()
self.layoutIfNeeded()
}
}
......@@ -37,11 +37,11 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
lazy var items: [PersonalModuleItem] = {
return [PersonalModuleItem(icon: "mine_item_msg", title: "我的消息".local),
PersonalModuleItem(icon: "mine_item_progress", title: "我的进度".local),
PersonalModuleItem(icon: "mine_manager", title: "积分中心".local),
PersonalModuleItem(icon: "mine_manager", title: "推荐有礼".local),
PersonalModuleItem(icon: "mine_manager", title: "我的海报".local),
PersonalModuleItem(icon: "mine_manager", title: "我的测评码".local),
PersonalModuleItem(icon: "mine_manager", title: "预约银河湾".local),]
PersonalModuleItem(icon: "mine_item_scoreCenter", title: "积分中心".local),
PersonalModuleItem(icon: "mine_item_recommend", title: "推荐有礼".local),
PersonalModuleItem(icon: "mine_item_poster", title: "我的海报".local),
PersonalModuleItem(icon: "mine_item_code", title: "我的测评码".local),
PersonalModuleItem(icon: "mine_item_appoint", title: "预约银河湾".local),]
}()
lazy var headerView: YHUserInfoHeaderView = {
......
......@@ -19,9 +19,9 @@ class YHPersonalCenterCell: UITableViewCell {
lazy var titleLabel:UILabel = {
let label = UILabel()
label.textColor = UIColor(hexString:"#333333")
label.textColor = UIColor(hexString:"#141414")
label.textAlignment = NSTextAlignment.left
label.font = UIFont.systemFont(ofSize: 15)
label.font = UIFont.PFSC_R(ofSize:15)
return label
}()
......
......@@ -32,12 +32,23 @@ class YHAllApiName {
//保存其他资料信息
static let updateOtherInfoApi = "frontend/order/updateOrderOtherInformation"
}
struct Family {
// 获取家庭成员信息 添加家庭成员也用这个
static let familyInfoApi = "frontend/order/information/family"
// 删除家庭成员信息
static let familyMemberDeleteApi = "frontend/order/information/family/delete"
}
struct Education {
// 获取学历及证书相关信息
static let getEducationAndQulificationInfoApi = "frontend/education/list"
// 获取学历详情信息
static let getEducationDetailInfoApi = "frontend/education/detail"
// 保存学历信息
static let saveEducationInfoApi = "frontend/education/save"
}
//Users
......
......@@ -95,7 +95,7 @@ class YHNetRequest: NSObject {
requestHeader.add(name:"sign",value:sign)
requestHeader.add(name: "token", value: "eyJpdiI6IkduSzJuR09VZFB6azU2OU9FRXZcL2JRPT0iLCJ2YWx1ZSI6IkZ1VWZjY1NoZVRHdnh1R2pjZUZ2eGdyU0JVWFJcL1hFemhWYlR3QzA5TnRLVkVCaEREbmpLNk5HenZCVERlaFdXY0J0czFxUlpwTFdkQnV3ckVMU01neDhERlwvSUc4bGprQk9QdzlIaGJaVGd4TjZcL1VMelFidmhrTklhbXZCSkpVVFp1KzQ1VnRYbDByaGwwV0lSNmtpRnJza29aSFJ6Wis4MXFVRWRQSElNNWRFbjF5bTdINlpKTlFhXC9LNExhQ2k0RzNyTFhxR3JKcjB2YzhMaW85WVhhU0dPNmhhUmhRbHVzTXh1Vjd0anc4NjdYWGdWWFBiMm15WGJCR0IyZlJ5NjFGQ0UyaVdXNjB6bXNScFpJXC81SVQ3ZFZkVWlcL1dJV09iMFhtUjBuSSt3NllSMER2aTNmVXNCa1NqWGZQTnBXRmVHaStpSHRhK2lYRHNyRXBzWE9kSE9BMkcwcWFHTzcwYjlNVlwvN2xoallsSVwvbkxkYzVQdUhCcW84K3FsQ25VakRJUXRIUHk3NHQ5ZGpETWRNUVlZOFduV01ZVDZBVGJnMm1RcTRuR0pJU24rN1c1YW05UFJGTXI3Z0xETnlVQWRQTlpvK2IrZlY5bGFIbUpGaHBuUnJkMlU0NGg3Kys1SGlaZENBZTdQXC9YVTM4MW9ONkVvVVg4QzYzVmRNT3l2QTE3U3JpamJzRFFTYlplbUE1VlRjYkNsaVhUdUczdTgxamhQVm1cL0RYZzBFeDQ0R1U1YjFBYXhkWmNWSDc2MXlrQlYzMjJzK0FoMnFyWWxKRVhZaTN0NTVkVm5QcFd2TTdaMUloVjA1TDNKVWN0eUo5QTZGcHJuenpNeFwvSnNpTFJjQW1YbUNvNUJmRHRKXC9ldnFET2JTYVFlSlgwNkF5dmpOOG9ZdW1VSGZtWnlFbzhQQURGc01DclhEM2NoYjVqd0lOb3hIMUcxcmVDdzhQZGdGc1dNSUtsWUpKR081SGtFUmpDWElkcXlaR21rbktWRkV4V0lwNDRrSFNOcnpzRkw2N2ZuS0RVT1wvWTk4TUo5dktaSCtYeENzRjM0c1Z3MGtjVXBzVGxxMGlUVVVDMTFldGlxREVzV2ZLRkNnWVZMWTRsSGFtNHZMSWJ3ZlBXSzA3c0FnWXp0Z2VKY1wvYm9IYkI0WWVUZVQ4OG1KMXZQaFJmMXc3Mjdqc1N1dFNjYkJNYVhjN1AwNmtJcXlVMTYxK1BoRVIrUFwvVTVRVWdvc3kwR1AzdHdlQXIzUzFyb1NBbXFlakxaV21uYmZ0Y29LQW1RVEJrZXpueWtnWE1hMkthY3F3Z0FOYjVFaDZZVFhJZ0VnVzhNOFVJYVZWR3RjNGp3cUUxdGdxR25rbGt4RUZjb1wvbEdiVVZ1d2l1UExjU1RWMVBGbXd1cWo0and0M1U5aGtHWm1RUGoranpjTjd5cUR3Z05cL25pUG5lY1wvUmgrbFRzXC9qZVZwVlNiM0FmK1Y0bTVHYk93OGtHMitUTzdSOWFHQlFnZXhqWmRwR2trZ1ZIZjJDNVFITnNXRm5jNmJzK1lqRFFwWWxEQnhFR2FLUStiZEJsbDV4Vit2dDc0cURiVVwvS2ExVkE4RmMxZEpJMkNJK01kWm9aajJjOUJaUGkzTjRNOVpTeHdQZW1UOUlCSTNacDlUSHNDOVwvN1B0U1dSUWFyalJqTis2SW5GckUrT0cxN2pmSDZ3RlJ4bDdSVVhBMWdocjM1RlVaOCtHYkw0RVoyYXVEOFhNNEpVa2Rzd3prM0hKSjFqQnlQYUsyaTJNNmVsbE1HbXZwR1RGNmxlK2ltU3Jka2lVN3VEeGtwQ0NYWlZEOFFOaHgzWHQ0YjdnMU1yeVhNMFwvRm1FSFhVMmpxZ2p2TlpYQitPZGxrS2s4dmoyWnhRMGg5d0Vld2x5MVIrZz09IiwibWFjIjoiMGNjNWM2OWIzMmJlZGNjZGRjNDBkY2RhMGQzMTk2ODg4MmRlNWEwNzZlNDc5MGVkMWRmNDBmOWVkMDA4YzQzZCJ9")
requestHeader.add(name: "token", value: "eyJpdiI6Ik5aeEVDclZTK0FISEFBZUgxN2VkdGc9PSIsInZhbHVlIjoiRFRJOHlObzVrZlp4T2tVYW1MSE1ZK0Z3dXlyK3p4QlczNmxsTXdkdW5GQVY4Q2VqZlNNUDdrdVpsb0JcLytpYmJheUp2MWZTUE5pOWgrVWRLdEtIUkx4R1wvS3F6SmRSQ0dWeFVXanFINGkyRWNMTXB4TVlcLzhjXC9NSzVoMFwvZ1ZOaVIwb0VqWlo1VERPSHY2RWJhME1RdWtkXC8yanBQdm9lMWM4WXJVK1BnMDd6SncwVVlWMDNnbSswSnM3eVwveFRRck03M3pOaDFSc3g0UmlYMTJQdmZpSkhUWHVMa21RV2xRbXBkalVTTUFicmFaN2NVNXl1ZTJOeEJoKzhrMnZtdzdvM1U5Qmh4WXNiSEFERUpiZHNWNkxoM2ZkVVRUdFlMMU1MQnIyaWNxNSt4S1NocDVEbnNqeHphUCtVVk1qTlVnMk1ydVNPamJ0c2tDQ1wvWFk1SkxtSWtDMU9oT3ZqaFpuNU5aVUVicHpYVU56VnlqK01Cb20welJMbkQrcTFWOHFUbzlPK0RGdDRcLzJ1T094MjNjYTVZZmJcL2txRE93cEFUYzlKWWdVWE9cLzFnYnVwTFZ4VUtqMFQ5QlgzZitDQjhyNURpU3p0bktqblBicUxPekNBcWRWM0g0WklSOEc0T0RPVkNBMGZQdEtWV3ZqN3IrcHZDYm9UNjREdnA3U1RZY1Z1dFE3K1RRM2F2eGY0QXc2dGlha0RBUDVpVHdFWE53dzl2eVczVk9VNTJSa1Fzb1J4ZGd0c0RCdktPQ1FWOUQ5Y0krckQ3bFc4NkNJMHliSXlnNGtYU1ZCUHRZWTdCKzA5d1wvdldzWTlpeUdYaEg4eGhITHpRSUthMWpSVlZvZVhwZ3BvamxCTHFSUXJmQ1hQNThYbUNNanZnVGs0b3RDTUFmYkdsYTEzeEtnTXJpZVU0QnJHWDJoUk9sUklzaFFhUkJiNWk0Z2E0cUUwejU4RmF2RnE4Z2U0eEo3VmZ2SmFMTlVacFBvSFlZUmM2N3liVTdhTk5NWU9YS0xtalk3QUN3NWV2UTlPeE5hMmk0aHU4MSt0YjNJQytFczRMa2l6XC9jV0Jxc01QYU0yYXdTXC92RXBxTFNVOVd6SlwvRm9KM21jUHlcL2diRlMyU3REeEl0K1RxSjRuck8xaXlOaWY4NXVzMVBibXpVSEZJWkVZQnFUd2k5TUVJcDUwUEFjTmljTzYyaWFYaFkzZUtkR294d29LUzBUTFF1Y0xxbWtMNFF4ZlZkN2k4YktEUnRGekU3OEdaN2J3TUR4T2FpVHRKaGlqRWNcL2c5dlwvOUVEVmdLNUhBSk1wSGV5UXVoOFJydlczc09HU1EyeXI4SFZZQmJJQWx1cGFIaXhmK1VJNmdoNmwrOElMZXFxSHZtazQreW84RFBlOXFnVDI2bm1tZWl0K01OcU1DSGJEQXdnWW9Hc0ptWFVJbXVXdEpyT2FKUHprTzJ1MkxFSEViZGV4cFpuOWRXK3dUdVR4bmJHZ1VRRGJycFRBME5lWUtaT0JCYjViSWVvcVJ3RXllb2tQZ1VkUWFqVWo0UHQzMUQwWVMwZ05rTTU0Nk1QQUdxTm9rZFNISVYrTG5DWlArNkt5RkZxajdZN1luakRKQVdUaVpnOUhCUExYMEVKRXRRT3QyZTI4cU9TdlBrbWxVZkFLSWZFbXNha3lCZUhFRVpyTmxQOERjbVwvMytCc0JpNnZcL1Nvek9yR2pUWGF2XC9VMzN4OEY5T3VsdUNGRFNWbHZZMnBzNHhMeEdIR21majBOOUJNbEhlK1J4S3dFTnlJamdTeFQyTWlTTlhCUWxnSDF6VmNhWHIzVGpoREY5clB2XC9uZHZjSm1iTHZ1bjFIUUFRait6dUJlUk1WQ1FhdXFoN002YlQ5MVwvQVMzYzJJQ0RFR1czdEtqMFBTQT09IiwibWFjIjoiOGVlZjBmNTVmMzEwNjhkZjVmYTlkYzAwYzllMjJmNjUyZmRmN2U1ODFiZTIzNzRjMDVjMTNiOTNhOWRhMmVkYSJ9")
headers = requestHeader
}
......
{
"images" : [
{
"filename" : "箭头中.png",
"idiom" : "universal",
"scale" : "1x"
},
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_item_appoint@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_item_appoint@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_item_code@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_item_code@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "我的个人中心页面内的花瓣采集图片-木初十@2x.png",
"filename" : "wode_xiaoxi@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "我的个人中心页面内的花瓣采集图片-木初十@3x.png",
"filename" : "wode_xiaoxi@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_item_poster@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_item_poster@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "我的个人中心页面内的花瓣采集图片-木初十.png",
"filename" : "wode_jindu@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "我的个人中心页面内的花瓣采集图片-木初十-1.png",
"filename" : "wode_jindu@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_item_recommend@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_item_recommend@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "mine_item_scoreCenter@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_item_scoreCenter@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "mine_manager@2x.png",
"filename" : "Frame@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "mine_manager@3x.png",
"filename" : "Frame@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
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