Commit ac4879e8 authored by David黄金龙's avatar David黄金龙

其他信息 UI 修改

parent ad60d466
This diff is collapsed.
......@@ -24,9 +24,9 @@ class YHConfigManager: NSObject {
//测试环境-H5
static let baseH5UrlTest : String = "https://test-hkdiy-h5.galaxy-immi.com"
static let baseH5UrlTest : String = "https://test-hklife.galaxy-immi.com"
//正式环境-H5
static let baseH5UrlRelease : String = "https://hkdiy-h5.galaxy-immi.com"
static let baseH5UrlRelease : String = "https://hklife.galaxy-immi.com"
//h5地址
var h5Url : String {
......
......@@ -112,6 +112,25 @@ extension YHOtherInfoFillViewController {
private func submitDataOp(flag : Bool) {
//提交
let model = otherInfoVM.otherInfoFillData
//处理提交的数据 //for test hjl
var tID = 0
if let arr = model?.language_detail_new, arr.count > 0 {
tID = arr[0].id
}
let fakeData : LanguageDetailNew = LanguageDetailNew()
fakeData.id = tID
fakeData.first_select = 3
fakeData.second_select = "1"
fakeData.other_instructions = "DavidTest"
model?.language_detail_new = [fakeData]
model?.is_update = flag
//保存
if let param = model?.toDictionary() {
......@@ -145,27 +164,27 @@ extension YHOtherInfoFillViewController {
private func dataIsOK() -> Bool {
var returnValue : Bool = true
if let model = otherInfoVM.otherInfoFillData {
//1.居住信息
for item in model.residences {
if item.country.isEmpty || item.start_time.isEmpty || item.end_time.isEmpty {
returnValue = false
return returnValue
}
}
// //1.居住信息
// for item in model.residences {
// if item.country.isEmpty || item.start_time.isEmpty || item.end_time.isEmpty {
// returnValue = false
// return returnValue
// }
// }
//2.语言水平
if model.language_detail?.levelDes.isEmpty == true {
returnValue = false
return returnValue
} else {
if let language = model.language_detail,language.level == 4 {
if language.name.isEmpty || language.remark.isEmpty {
returnValue = false
return returnValue
}
}
}
// //2.语言水平
// if model.language_detail?.levelDes.isEmpty == true {
// returnValue = false
// return returnValue
// } else {
// if let language = model.language_detail,language.level == 4 {
// if language.name.isEmpty || language.remark.isEmpty {
// returnValue = false
// return returnValue
// }
// }
//
// }
//3.专业技能行业
if model.profession?.optionDes.isEmpty == true {
......
......@@ -13,6 +13,13 @@ class YHOtherInfoFillModel: SmartCodable {
var order_id: String = ""
var residences: [Residence] = []
var language_detail: LanguageDetail?
//服务器返回
var language_detail_new : [LanguageDetailNew] = []
//数据储存在各端的数据
var language_detail_new_data : [LanguageDetailModel] = []
var profession: Profession?
var question: Question?
var is_update : Bool = false //true-提交 false-保存
......@@ -63,6 +70,40 @@ class LanguageDetail : SmartCodable {
}
}
class LanguageDetailNew : SmartCodable {
var id: Int = 0
var first_select: Int = 0
var second_select : String = "" //"1,2,3" 兼容多选
var other_instructions: String = ""
required init() {
}
}
class LanguageOptionModel : SmartCodable {
var id: Int = 0
var name: String = ""
var select : Bool = false
var subname: String = ""
var highlight : String = ""
required init() {
}
}
class LanguageDetailModel : SmartCodable {
var id: Int = 0
var name: String = ""
var select : Bool = false
var other_instructions: String = ""
var options : [LanguageOptionModel] = []
required init() {
}
}
// MARK: - Profession
class Profession : SmartCodable{
var option: Int = -1
......
//
// YHOtherLanguageItemsView.swift
// galaxy
//
// Created by davidhuangA on 2024/11/16.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHOtherMultipleChoiceItemView: UIView {
static let viewH : CGFloat = 52.0
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
var isSelected : Bool = false {
didSet {
setViewSelected()
}
}
//数据结构
var dataModel : LanguageDetailModel? {
didSet {
updateUI()
}
}
private lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = .mainTextColor
label.font = UIFont.PFSC_R(ofSize: 14)
label.text = "中文"
label.numberOfLines = 0
label.lineBreakMode = .byCharWrapping
return label
}()
private lazy var checkImgV:UIImageView = {
let view = UIImageView()
view.image = UIImage(named: "other_multi_normal")
view.contentMode = .scaleAspectFill
return view
}()
typealias Block = (LanguageDetailModel?) -> ()
var block: Block?
}
extension YHOtherMultipleChoiceItemView {
func setupUI() {
addSubview(checkImgV)
addSubview(titleLabel)
layer.cornerRadius = 3
layer.masksToBounds = true
checkImgV.snp.makeConstraints { make in
make.left.equalTo(kMargin)
make.width.height.equalTo(14)
make.centerY.equalToSuperview()
}
titleLabel.snp.makeConstraints { make in
make.left.equalTo(checkImgV.snp.right).offset(8)
make.right.equalToSuperview().offset(-kMargin)
make.centerY.equalToSuperview()
}
setViewSelected()
let tap : UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapItem(gestureRecognizer:)))
addGestureRecognizer(tap)
}
func setViewSelected() {
if isSelected {
backgroundColor = UIColor(hexString: "#EBF0F9")!
layer.borderWidth = 1
layer.borderColor = UIColor.brandMainColor.cgColor
checkImgV.image = UIImage(named: "other_multi_check")
} else {
backgroundColor = .contentBkgColor
layer.borderWidth = 0
layer.borderColor = UIColor.clear.cgColor
checkImgV.image = UIImage(named: "other_multi_normal")
}
}
func updateUI() {
guard let model = dataModel else {
return
}
titleLabel.text = model.name
isSelected = model.select
}
@objc func tapItem(gestureRecognizer:UITapGestureRecognizer) {
guard let model = dataModel else {
return
}
model.select = !model.select
isSelected = model.select
self.block?(model)
}
}
//
// YHOtherSingleChoiceItemView.swift
// galaxy
//
// Created by davidhuangA on 2024/11/16.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHOtherSingleChoiceItemView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
var isSelected : Bool = false {
didSet {
setViewSelected()
}
}
private lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = .mainTextColor
label.font = UIFont.PFSC_R(ofSize: 14)
label.text = "相关语言国家授予的学位证及成绩单相关语言国家授予的学位证及成绩单"
label.numberOfLines = 0
label.lineBreakMode = .byCharWrapping
return label
}()
private lazy var descLabel: UILabel = {
let label = UILabel()
label.textColor = UIColor.init(hex: 0x8993A2)
label.font = UIFont.PFSC_R(ofSize: 12)
label.text = "(仅可尝试加分,此类文件加分以港府审批为准)"
label.numberOfLines = 0
label.lineBreakMode = .byCharWrapping
return label
}()
private lazy var checkImgV:UIImageView = {
let view = UIImageView()
view.image = UIImage(named: "other_single_normal")
view.contentMode = .scaleAspectFill
return view
}()
var dataModel : LanguageOptionModel? {
didSet {
updateUI()
}
}
}
extension YHOtherSingleChoiceItemView {
func setupUI() {
addSubview(checkImgV)
addSubview(titleLabel)
addSubview(descLabel)
checkImgV.snp.makeConstraints { make in
make.left.equalToSuperview()
make.top.equalToSuperview().offset(2)
make.width.height.equalTo(14)
}
titleLabel.snp.makeConstraints { make in
make.top.equalToSuperview()
make.left.equalTo(checkImgV.snp.right).offset(8)
make.right.equalToSuperview()
make.height.greaterThanOrEqualTo(18)
}
descLabel.snp.makeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom).offset(2)
make.left.equalTo(titleLabel.snp.left)
make.right.equalTo(titleLabel.snp.right)
make.bottom.equalToSuperview()
}
setViewSelected()
}
func updateUI() {
guard let model = dataModel else {
return
}
titleLabel.text = model.name
descLabel.text = model.subname
isSelected = model.select
setViewSelected()
}
func setViewSelected() {
if isSelected {
checkImgV.image = UIImage(named: "other_single_check")
} else {
checkImgV.image = UIImage(named: "other_single_normal")
}
}
}
//
// YHSingleOptionalItemsView.swift
// galaxy
//
// Created by davidhuangA on 2024/11/16.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHSingleOptionalItemsView: UIView {
//提示lable
private lazy var noTextTipsLable: UILabel = {
let label = UILabel()
label.textColor = .failColor
label.font = UIFont.PFSC_R(ofSize: 12)
label.text = "请选择"
return label
}()
//输入名称
private lazy var languageTextField:UITextField = {
let textField = UITextField()
textField.backgroundColor = .clear
textField.attributedPlaceholder = NSAttributedString(string: "请输入语言".local, attributes: [NSAttributedString.Key.foregroundColor : UIColor(hex: 0xB9C1CC)])
textField.font = UIFont.PFSC_R(ofSize: 14)
textField.tintColor = UIColor.brandMainColor
textField.textColor = UIColor.mainTextColor
textField.clearButtonMode = .whileEditing
textField.addTarget(self, action: #selector(textFieldChanged(textField:)), for: .editingChanged)
textField.delegate = self
return textField
}()
var textFieldHoldView : UIView = {
let view = UIView()
view.backgroundColor = .contentBkgColor
view.clipsToBounds = true
view.layer.cornerRadius = kCornerRadius3
return view
}()
var optionsHoldView : UIView = {
let view = UIView()
view.backgroundColor = .contentBkgColor
view.clipsToBounds = true
view.layer.cornerRadius = kCornerRadius3
return view
}()
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
//数据结构
var dataModel : LanguageDetailModel? {
didSet {
updateUI()
}
}
}
private extension YHSingleOptionalItemsView {
func setupUI() {
addSubview(textFieldHoldView)
textFieldHoldView.isHidden = true
textFieldHoldView.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
make.height.equalTo(52)
}
textFieldHoldView.addSubview(languageTextField)
languageTextField.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.left.equalToSuperview().offset(kMargin)
make.right.equalToSuperview().offset(-kMargin)
}
addSubview(optionsHoldView)
optionsHoldView.snp.makeConstraints { make in
make.top.equalTo(textFieldHoldView.snp.bottom).offset(8)
make.left.right.equalToSuperview()
make.height.equalTo(60)//for test hjl
make.bottom.equalToSuperview()
}
//for test hjl
let tmpOption = YHOtherSingleChoiceItemView()
optionsHoldView.addSubview(tmpOption)
tmpOption.snp.makeConstraints { make in
make.top.equalToSuperview().offset(kMargin)
make.left.equalToSuperview().offset(kMargin)
make.right.equalToSuperview().offset(-kMargin)
}
let tmpOption1 = YHOtherSingleChoiceItemView()
tmpOption1.isSelected = true
optionsHoldView.addSubview(tmpOption1)
tmpOption1.snp.makeConstraints { make in
make.top.equalTo(tmpOption.snp.bottom).offset(kMargin)
make.left.equalToSuperview().offset(kMargin)
make.right.equalToSuperview().offset(-kMargin)
}
let tmpOption2 = YHOtherSingleChoiceItemView()
optionsHoldView.addSubview(tmpOption2)
tmpOption2.snp.makeConstraints { make in
make.top.equalTo(tmpOption1.snp.bottom).offset(kMargin)
make.left.equalToSuperview().offset(kMargin)
make.right.equalToSuperview().offset(-kMargin)
make.bottom.equalToSuperview().offset(-kMargin)
}
}
@objc func textFieldChanged(textField:UITextField) {
printLog(textField.text)
}
func updateUI() {
guard let model = dataModel else {
return
}
if model.options.count > 0 {
optionsHoldView.snp.removeConstraints()
optionsHoldView.removeSubviews()
if model.id == 3 {
textFieldHoldView.isHidden = false
optionsHoldView.snp.remakeConstraints() { make in
make.top.equalTo(textFieldHoldView.snp.bottom).offset(8)
make.left.right.equalToSuperview()
make.bottom.equalToSuperview()
}
} else {
textFieldHoldView.isHidden = true
optionsHoldView.snp.remakeConstraints() { make in
make.top.equalToSuperview()
make.left.right.equalToSuperview()
make.bottom.equalToSuperview()
}
}
var lastView : UIView?
for(index,item) in model.options.enumerated() {
let tmpOption = YHOtherSingleChoiceItemView()
tmpOption.dataModel = item
optionsHoldView.addSubview(tmpOption)
if index == 0 {
//第一个
tmpOption.snp.makeConstraints { make in
make.top.equalToSuperview().offset(kMargin)
make.left.equalToSuperview().offset(kMargin)
make.right.equalToSuperview().offset(-kMargin)
}
} else if index + 1 == model.options.count {
//最后一个
if let tttView = lastView {
tmpOption.snp.makeConstraints { make in
make.top.equalTo(tttView.snp.bottom).offset(kMargin)
make.left.equalToSuperview().offset(kMargin)
make.right.equalToSuperview().offset(-kMargin)
make.bottom.equalToSuperview().offset(-kMargin)
}
}
} else {
//中间
if let tttView = lastView {
tmpOption.snp.makeConstraints { make in
make.top.equalTo(tttView.snp.bottom).offset(kMargin)
make.left.equalToSuperview().offset(kMargin)
make.right.equalToSuperview().offset(-kMargin)
}
}
}
lastView = tmpOption
}
}
}
}
extension YHSingleOptionalItemsView: UITextFieldDelegate {
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if string.isEmpty == true { // 点击删除
return true
}
let newText = (textField.text! as NSString).replacingCharacters(in: range, with: string)
if newText.count > 30 {
return false
}
return true
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group 33333990@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 33333990@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Rectangle 2957@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Rectangle 2957@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group 33333990@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 33333990@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Rectangle 2956@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Rectangle 2956@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
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