Commit 057b6c21 authored by pete谢兆麟's avatar pete谢兆麟

Merge commit 'd32f1e31' into xiezhaolin

# Conflicts:
#	galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/WorkExperience/C/YHWorkExperienceViewController.swift
#	galaxy/galaxy/Classes/Modules/IntelligentService(服务中心)/ServiceProcess(流程)/WorkExperience/V/YHWorkFileItemView.swift
#	galaxy/galaxy/Classes/Tools/NetWork/YHNetRequest.swift
parents b37f681e d32f1e31
This diff is collapsed.
...@@ -164,12 +164,20 @@ extension YHServiceCenterSecondViewController : UITableViewDelegate,UITableViewD ...@@ -164,12 +164,20 @@ extension YHServiceCenterSecondViewController : UITableViewDelegate,UITableViewD
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true) tableView.deselectRow(at: indexPath, animated: true)
if indexPath.row == 0 {
let model = self.serviceCenterMainReqVM.arrContactStausItmes[indexPath.row]
if model.type == 1 {
let vc = YHInformationPerfectListVC() let vc = YHInformationPerfectListVC()
vc.orderId = orderId vc.orderId = orderId
navigationController?.pushViewController(vc) navigationController?.pushViewController(vc)
} else if indexPath.row == 1 { } else if model.type == 2 {
YHHUD.flash(message: "下个版本完善")
} else if model.type == 3 {
let vc = YHScoreDetailViewController()
vc.orderId = orderId
vc.model = serviceCenterMainReqVM.allInfoScoreModel
navigationController?.pushViewController(vc)
} else { } else {
} }
......
...@@ -42,8 +42,8 @@ class YHInformationPerfectModel { ...@@ -42,8 +42,8 @@ class YHInformationPerfectModel {
} }
var status : String = "" var status : String = ""
var color : UIColor = .red var color : UIColor = .failColor
var statusColor : UIColor = .red var statusColor : UIColor = .failColor
var isFinished : Bool = false { var isFinished : Bool = false {
didSet { didSet {
status = isFinished ? "已完成" : "待完善" status = isFinished ? "已完成" : "待完善"
......
...@@ -106,7 +106,7 @@ extension YHBasicInfoFillViewController { ...@@ -106,7 +106,7 @@ extension YHBasicInfoFillViewController {
submitAndSaveDataOp(isSaveFlag: false) submitAndSaveDataOp(isSaveFlag: false)
} else { } else {
homeTableView.reloadData() homeTableView.reloadData()
YHHUD.flash(message: "请完善信息") YHHUD.flash(message: "您还有信息未填写")
} }
} }
...@@ -163,7 +163,6 @@ extension YHBasicInfoFillViewController { ...@@ -163,7 +163,6 @@ extension YHBasicInfoFillViewController {
applicant.updateValue(basicInfoVM.dataModelForBasicInfo?.applicant?.id ?? 0, forKey: "id") applicant.updateValue(basicInfoVM.dataModelForBasicInfo?.applicant?.id ?? 0, forKey: "id")
param.updateValue(applicant, forKey: "applicant") param.updateValue(applicant, forKey: "applicant")
} else if item.sessionTitle == "配偶" { } else if item.sessionTitle == "配偶" {
var applicant : [String : Any] = [:] var applicant : [String : Any] = [:]
for (index0,item0) in item.arrQuestionItem.enumerated() { for (index0,item0) in item.arrQuestionItem.enumerated() {
if index0 == 0 { if index0 == 0 {
......
...@@ -82,36 +82,23 @@ extension YHBasicInfoFillViewModel { ...@@ -82,36 +82,23 @@ extension YHBasicInfoFillViewModel {
var arrData : [YHBasicInfoSessionModel] = [] var arrData : [YHBasicInfoSessionModel] = []
do { do {
//主申请人 //主申请人
let model1 = YHBasicInfoCellModel(question: "1、是否曾在香港或其他地方因任何罪行或违法行为被定罪?", answer: dataModelForBasicInfo.applicant?.has_conviction?.has ?? "", info: dataModelForBasicInfo.applicant?.has_conviction?.info ?? "") if let model = dataModelForBasicInfo.applicant {
let model1 = YHBasicInfoCellModel(question: "1、是否曾在香港或其他地方因任何罪行或违法行为被定罪?", answer: model.has_conviction?.has ?? "", info: model.has_conviction?.info ?? "")
let model2 = YHBasicInfoCellModel(question: "2、是否曾在香港或其他地方被拒入境/递解/遣送或要求离境?", answer: dataModelForBasicInfo.applicant?.has_departure?.has ?? "", info: dataModelForBasicInfo.applicant?.has_departure?.info ?? "")
let model3 = YHBasicInfoCellModel(question: "3、是否曾被拒绝签发香港或其他地方的签证/进入许可?", answer: dataModelForBasicInfo.applicant?.has_deny?.has ?? "", info: dataModelForBasicInfo.applicant?.has_deny?.info ?? "")
let model4 = YHBasicInfoCellModel(question: "4、是否曾触犯香港或任何地方的入境法例?", answer: dataModelForBasicInfo.applicant?.has_breaking_law?.has ?? "", info: dataModelForBasicInfo.applicant?.has_breaking_law?.info ?? "")
let model5 = YHBasicInfoCellModel(question: "5、是否曾经使用另一个姓名或身份申请香港入境签证/进入许可或进入香港?", answer: dataModelForBasicInfo.applicant?.has_other_id?.has ?? "", info: dataModelForBasicInfo.applicant?.has_other_id?.info ?? "")
let arr = [model1,model2,model3,model4,model5]
let sessionModel = YHBasicInfoSessionModel(sessionTitle: "主申请人", arrQuestionItem: arr)
arrData.append(sessionModel)
}
do {
//配偶
if let spouse = dataModelForBasicInfo.spouse {
let model1 = YHBasicInfoCellModel(question: "1、是否曾被拒绝入境/递解/遣送或要求离开香港?", answer: spouse.child_departure?.has ?? "", info: spouse.child_departure?.info ?? "")
let model2 = YHBasicInfoCellModel(question: "2、是否曾被拒绝签发签证/进入许可以入境香港?", answer: spouse.child_deny?.has ?? "", info: spouse.child_deny?.info ?? "")
let arr = [model1,model2]
let sessionModel = YHBasicInfoSessionModel(sessionTitle: "配偶", arrQuestionItem: arr) let model2 = YHBasicInfoCellModel(question: "2、是否曾在香港或其他地方被拒入境/递解/遣送或要求离境?", answer: model.has_departure?.has ?? "", info: model.has_departure?.info ?? "")
let model3 = YHBasicInfoCellModel(question: "3、是否曾被拒绝签发香港或其他地方的签证/进入许可?", answer: model.has_deny?.has ?? "", info: model.has_deny?.info ?? "")
let model4 = YHBasicInfoCellModel(question: "4、是否曾触犯香港或任何地方的入境法例?", answer: model.has_breaking_law?.has ?? "", info: model.has_breaking_law?.info ?? "")
let model5 = YHBasicInfoCellModel(question: "5、是否曾经使用另一个姓名或身份申请香港入境签证/进入许可或进入香港?", answer: model.has_other_id?.has ?? "", info: model.has_other_id?.info ?? "")
let arr = [model1,model2,model3,model4,model5]
let sessionModel = YHBasicInfoSessionModel(sessionTitle: "主申请人", arrQuestionItem: arr)
arrData.append(sessionModel) arrData.append(sessionModel)
} }
} }
do { do {
//子女 - xxx //子女 - xxx
if let arrChild = dataModelForBasicInfo.child { if let arrChild = dataModelForBasicInfo.child {
...@@ -129,6 +116,20 @@ extension YHBasicInfoFillViewModel { ...@@ -129,6 +116,20 @@ extension YHBasicInfoFillViewModel {
} }
} }
do {
//配偶
if let spouse = dataModelForBasicInfo.spouse {
let model1 = YHBasicInfoCellModel(question: "1、是否曾被拒绝入境/递解/遣送或要求离开香港?", answer: spouse.child_departure?.has ?? "", info: spouse.child_departure?.info ?? "")
let model2 = YHBasicInfoCellModel(question: "2、是否曾被拒绝签发签证/进入许可以入境香港?", answer: spouse.child_deny?.has ?? "", info: spouse.child_deny?.info ?? "")
let arr = [model1,model2]
let sessionModel = YHBasicInfoSessionModel(sessionTitle: "配偶", arrQuestionItem: arr)
arrData.append(sessionModel)
}
}
do { do {
//家庭背景 //家庭背景
if let model = dataModelForBasicInfo.background { if let model = dataModelForBasicInfo.background {
...@@ -140,7 +141,6 @@ extension YHBasicInfoFillViewModel { ...@@ -140,7 +141,6 @@ extension YHBasicInfoFillViewModel {
} }
} }
arrBasicInfoSessionDataForEdit = arrData arrBasicInfoSessionDataForEdit = arrData
} }
} }
......
...@@ -23,6 +23,7 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -23,6 +23,7 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
var child:YHFamilyMember? { var child:YHFamilyMember? {
didSet { didSet {
primaryInfoVC.child = child primaryInfoVC.child = child
uploadVC.familyMember = child
certificateVC.familyMember = child certificateVC.familyMember = child
basicInfoVC.child = child basicInfoVC.child = child
} }
...@@ -37,6 +38,12 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -37,6 +38,12 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
} }
for vcItem in stepVCs { for vcItem in stepVCs {
vcItem.vc.view.isHidden = (vcItem.step != currentStep) vcItem.vc.view.isHidden = (vcItem.step != currentStep)
if vcItem.step == currentStep {
// 刷新
if vcItem.vc.responds(to: #selector(YHFamilyMemberProtol.loadInfo)) {
vcItem.vc.loadInfo()
}
}
} }
} }
} }
...@@ -57,6 +64,7 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -57,6 +64,7 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
gk_navTitle = "子女信息填写".local
createUI() createUI()
} }
...@@ -71,6 +79,7 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -71,6 +79,7 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
updateStepView() updateStepView()
print("step:\(child.step)") print("step:\(child.step)")
currentStep = child.step currentStep = child.step
stepView.maxIndex = child.step
view.addSubview(stepView) view.addSubview(stepView)
view.addSubview(bottomView) view.addSubview(bottomView)
...@@ -84,7 +93,7 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -84,7 +93,7 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
bottomView.saveBlock = { bottomView.saveBlock = {
[weak self] in [weak self] in
guard let self = self else { return } guard let self = self else { return }
self.saveInfo() self.saveInfo(isSubmit: false, isShowLoading: true, callBack:nil)
} }
stepView.snp.makeConstraints { make in stepView.snp.makeConstraints { make in
...@@ -131,7 +140,9 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -131,7 +140,9 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
titles.append(vcItem.title) titles.append(vcItem.title)
} }
stepView.dataSource = titles stepView.dataSource = titles
let step = currentStep
currentStep = step
stepView.block = { stepView.block = {
[weak self] index in [weak self] index in
guard let self = self else { return } guard let self = self else { return }
...@@ -150,16 +161,22 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -150,16 +161,22 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
func submit() { func submit() {
if let targetVC = getCurrentStepViewController() { if let targetVC = getCurrentStepViewController() {
if targetVC.nextStep() { if targetVC.nextStep() {
saveInfo(isSubmit: true, isShowLoading: true) {
// 当前步骤已是最后一步 [weak self] success, error in
if let vc = stepVCs.last, vc.step == currentStep { guard let self = self else { return }
YHHUD.flash(message: "已经是最后一步!") if success {
return // 当前步骤已是最后一步
} if let vc = stepVCs.last, vc.step == currentStep {
if let cur = getArrayIndexOfCurrentStep(), let item = stepVCs[safe:cur+1] { self.navigationController?.popViewController()
currentStep = item.step return
}
if let cur = getArrayIndexOfCurrentStep(), let item = stepVCs[safe:cur+1] {
currentStep = item.step
}
print("currentIndex:\(currentStep)")
}
} }
print("currentIndex:\(currentStep)")
} }
} }
} }
...@@ -194,22 +211,33 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -194,22 +211,33 @@ class YHChildInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
} }
extension YHChildInfoContainerVC { extension YHChildInfoContainerVC {
func saveInfo() {
// @param isSubmit:是否为提交 false为保存 true为提交
// @param isShowLoading: 是否展示loading和toast
func saveInfo(isSubmit:Bool, isShowLoading:Bool, callBack:((Bool, String?)->Void)?) {
guard let child = child else { return } guard let child = child else { return }
guard let info = child.toDictionary() else { return } guard let info = child.toDictionary() else { return }
let dict:[String: Any] = ["orderId":child.orderId, let dict:[String: Any] = ["order_id":child.orderId,
"relation":child.relationType.rawValue, "relation":child.relation,
"step":child.step, "step":child.step,
"next":false, "next":isSubmit,
"info":info] "info":info]
self.familyRequest.addOrSaveFamilyMember(params:dict) { [weak self] success, error in self.familyRequest.addOrSaveFamilyMember(params:dict, isShowLoading: isShowLoading) {
[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
if success { if isShowLoading {
YHHUD.flash(message: success ? "保存成功" : "保存失败")
}
if let callBack = callBack {
callBack(success, error?.errorMsg)
} }
} }
} }
func saveInfoSilent() {
saveInfo(isSubmit:false, isShowLoading:false, callBack:nil)
}
} }
//
// YHCertificateUploadVC.swift
// galaxy
//
// Created by edy on 2024/2/26.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHCertificateUploadVC: YHBaseViewController, YHFamilyMemberProtol {
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .systemPink
// Do any additional setup after loading the view.
}
func nextStep()->Bool {
return true
}
}
...@@ -8,14 +8,16 @@ ...@@ -8,14 +8,16 @@
import UIKit import UIKit
@objc protocol YHSpouseInfoVCProtocol { @objc protocol YHSpouseInfoVCProtocol:NSObjectProtocol {
@objc optional func updateStepView() @objc func updateStepView()
@objc optional func saveInfo() // 静默保存数据(不显示toast)
@objc func saveInfoSilent()
} }
@objc protocol YHFamilyMemberProtol { @objc protocol YHFamilyMemberProtol:NSObjectProtocol {
@objc func nextStep()->Bool @objc func nextStep()->Bool
@objc func loadInfo()
} }
class YHFaimilyStepItem { class YHFaimilyStepItem {
...@@ -41,6 +43,7 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -41,6 +43,7 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
didSet { didSet {
if let spouse = spouse { if let spouse = spouse {
primaryInfoVC.spouse = spouse primaryInfoVC.spouse = spouse
uploadVC.familyMember = spouse
certificateVC.familyMember = spouse certificateVC.familyMember = spouse
basicInfoVC.spouse = spouse basicInfoVC.spouse = spouse
} }
...@@ -56,6 +59,12 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -56,6 +59,12 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
} }
for vcItem in stepVCs { for vcItem in stepVCs {
vcItem.vc.view.isHidden = (vcItem.step != currentStep) vcItem.vc.view.isHidden = (vcItem.step != currentStep)
if vcItem.step == currentStep {
// 刷新
if vcItem.vc.responds(to: #selector(YHFamilyMemberProtol.loadInfo)) {
vcItem.vc.loadInfo()
}
}
} }
} }
} }
...@@ -78,13 +87,14 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -78,13 +87,14 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
gk_navTitle = "配偶信息填写".local
createUI() createUI()
} }
func createUI() { func createUI() {
guard let spouse = spouse else { return } guard let spouse = spouse else { return }
primaryInfoVC.delegate = self primaryInfoVC.delegate = self
certificateVC.delegate = self certificateVC.delegate = self
basicInfoVC.delegate = self basicInfoVC.delegate = self
...@@ -95,10 +105,7 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -95,10 +105,7 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
updateStepView() updateStepView()
print("step:\(spouse.step)") print("step:\(spouse.step)")
currentStep = spouse.step currentStep = spouse.step
stepView.maxIndex = spouse.step
let tap = UITapGestureRecognizer(target: self, action: #selector(tap))
tap.cancelsTouchesInView = false
self.view.addGestureRecognizer(tap)
bottomView.submitBlock = { bottomView.submitBlock = {
[weak self] in [weak self] in
...@@ -109,7 +116,7 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -109,7 +116,7 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
bottomView.saveBlock = { bottomView.saveBlock = {
[weak self] in [weak self] in
guard let self = self else { return } guard let self = self else { return }
self.saveInfo() saveInfo(isSubmit: false, isLoading: true, callBack: nil)
} }
stepView.snp.makeConstraints { make in stepView.snp.makeConstraints { make in
...@@ -157,6 +164,9 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -157,6 +164,9 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
} }
stepView.dataSource = titles stepView.dataSource = titles
// 数据源可能会变,所以需要重新设置step
let step = currentStep
currentStep = step
stepView.block = { stepView.block = {
[weak self] index in [weak self] index in
...@@ -167,8 +177,7 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -167,8 +177,7 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
} }
print("index:\(index)") print("index:\(index)")
} }
let step = currentStep
currentStep = step
self.view.bringSubviewToFront(stepView) self.view.bringSubviewToFront(stepView)
self.view.bringSubviewToFront(bottomView) self.view.bringSubviewToFront(bottomView)
...@@ -177,7 +186,8 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol { ...@@ -177,7 +186,8 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
extension YHSpouseInfoContainerVC { extension YHSpouseInfoContainerVC {
func saveInfo(isSubmit:Bool, callBack:((Bool, String?)->Void)?) { // isSubmit:是否为提交 false为保存 true为提交
func saveInfo(isSubmit:Bool, isLoading:Bool, callBack:((Bool, String?)->Void)?) {
guard let spouse = spouse else { return } guard let spouse = spouse else { return }
guard let info = spouse.toDictionary() else { return } guard let info = spouse.toDictionary() else { return }
...@@ -188,30 +198,32 @@ extension YHSpouseInfoContainerVC { ...@@ -188,30 +198,32 @@ extension YHSpouseInfoContainerVC {
"next":isSubmit, "next":isSubmit,
"info":info] "info":info]
self.familyRequest.addOrSaveFamilyMember(params:dict) { [weak self] success, error in self.familyRequest.addOrSaveFamilyMember(params:dict, isShowLoading: isLoading) {
guard let self = self else { return } [weak self] success, error in
if isLoading {
YHHUD.flash(message: success ? "保存成功" : "保存失败")
}
if let callBack = callBack { if let callBack = callBack {
callBack(success, error?.errorMsg) callBack(success, error?.errorMsg)
} }
} }
} }
func saveInfo() { func saveInfoSilent() {
saveInfo(isSubmit: false, callBack:nil) saveInfo(isSubmit: false, isLoading: false, callBack: nil)
} }
func submit() { func submit() {
if let targetVC = getCurrentStepViewController() { if let targetVC = getCurrentStepViewController() {
if targetVC.nextStep() { if targetVC.nextStep() {
saveInfo(isSubmit: true, isLoading: true) {
saveInfo(isSubmit: true) {
[weak self] success, tips in [weak self] success, tips in
guard let self = self else { return } guard let self = self else { return }
if success { if success {
// 当前步骤已是最后一步 // 当前步骤已是最后一步
if let vc = stepVCs.last, vc.step == currentStep { if let vc = stepVCs.last, vc.step == currentStep {
YHHUD.flash(message: "已经是最后一步!") self.navigationController?.popViewController()
return return
} }
...@@ -253,10 +265,3 @@ extension YHSpouseInfoContainerVC { ...@@ -253,10 +265,3 @@ extension YHSpouseInfoContainerVC {
return nil return nil
} }
} }
extension YHSpouseInfoContainerVC: UIGestureRecognizerDelegate {
@objc func tap() {
print("点击了parentViewController: YHSpouseInfoContainerVC")
}
}
//
// YHCertificateUploadVC.swift
// galaxy
//
// Created by edy on 2024/2/26.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHCertificateUploadVC: YHBaseViewController, YHFamilyMemberProtol {
var tableView: UITableView!
var familyMember:YHFamilyMember? {
didSet {
if let familyMember = familyMember {
viewModel.mainModel = familyMember
}
}
}
var viewModel: YHFamilyMemberViewModel = YHFamilyMemberViewModel()
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .white
createUI()
}
func loadInfo() {
self.tableView.reloadData()
}
func nextStep()->Bool {
return true
}
func createUI() {
tableView = {
let tableView = UITableView(frame:.zero, style:.plain)
if #available(iOS 11.0, *) {
tableView.contentInsetAdjustmentBehavior = .never
}
tableView.backgroundColor = .clear
tableView.separatorStyle = .none
tableView.delegate = self
tableView.dataSource = self
tableView.register(cellWithClass: YHIdentityCardCell.self)
return tableView
}()
view.addSubview(tableView)
tableView.snp.makeConstraints { make in
make.top.equalTo(k_Height_NavigationtBarAndStatuBar + YHStepView.height)
make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 64)
make.left.right.bottom.equalTo(view)
}
}
}
extension YHCertificateUploadVC: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return viewModel.getIDCardDataSource(false).count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHIdentityCardCell.self)
cell.type = YHCardType(rawValue: indexPath.row) ?? .identity
cell.viewModel = viewModel
cell.informationBlock = {[weak self] type, image, isLeft in
guard let self = self else { return }
}
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 217.0
}
}
...@@ -559,6 +559,7 @@ extension YHFamilyMemberInfoVC : UITableViewDelegate, UITableViewDataSource { ...@@ -559,6 +559,7 @@ extension YHFamilyMemberInfoVC : UITableViewDelegate, UITableViewDataSource {
// 兄弟姐妹 // 兄弟姐妹
if detailItem.relationType == .brother { if detailItem.relationType == .brother {
let vc = YHBrotherInfoVC() let vc = YHBrotherInfoVC()
vc.orderId = orderId
vc.brotherInfo = detailItem vc.brotherInfo = detailItem
self.navigationController?.pushViewController(vc) self.navigationController?.pushViewController(vc)
return return
......
...@@ -399,9 +399,12 @@ class YHFormDetailItem : YHFormItemProtocol { ...@@ -399,9 +399,12 @@ class YHFormDetailItem : YHFormItemProtocol {
return true return true
} }
init(type: YHFormDetailItemType, isNeed:Bool = true) { init(type: YHFormDetailItemType, isNeed:Bool = true, value:String? = "", placeHolder:String? = "", tips:String? = "") {
self.type = type self.type = type
self.isNeed = isNeed self.isNeed = isNeed
self.value = value
self.placeHolder = placeHolder
self.tips = tips
} }
...@@ -912,7 +915,7 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol { ...@@ -912,7 +915,7 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
var step: Int = 0 var step: Int = 0
var isHandled: Int = 0 var isHandled: Int = 0
var notFillNumber: Int = -1 var notFillNumber: Int = -1
var certificates: YHCertificates? var certificates: YHCertificates = YHCertificates()
var usedName: String = "" var usedName: String = ""
var hkIdentityOther: String = "" var hkIdentityOther: String = ""
var isHkHandled: Int = 0 var isHkHandled: Int = 0
...@@ -1041,12 +1044,11 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol { ...@@ -1041,12 +1044,11 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
} }
// 是否拥有学位 // 是否拥有学位
func haveDegreeName() -> String? { func hasDegreeName() -> String {
if hasDegree == "1" { if hasDegree == "1" {
return "有学位" return "有学位".local
} else {
return "无学位"
} }
return "无学位".local
} }
func isHaveDegree() ->Bool { func isHaveDegree() ->Bool {
...@@ -1098,6 +1100,15 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol { ...@@ -1098,6 +1100,15 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
return "" return ""
} }
func setSexName(_ sexName:String?) {
guard let sexName = sexName else { return }
if sexName == "男".local {
self.sex = 1
} else if sexName == "女".local {
self.sex = 2
}
}
// 是否前一次婚姻子女 // 是否前一次婚姻子女
func isPreviousMarriageChild() -> Bool { func isPreviousMarriageChild() -> Bool {
return self.childStepchild.has == "Y" return self.childStepchild.has == "Y"
...@@ -1183,6 +1194,24 @@ class YHAddress: SmartCodable { ...@@ -1183,6 +1194,24 @@ class YHAddress: SmartCodable {
required init() { required init() {
} }
// 是否在中国
func isInChina() ->Bool {
// 默认在中国
if isEmptyString(country) { return true }
if country.contains("中国") {
return true
}
return false
}
// 清空地址信息
func clearAddress() {
self.area = []
self.country = ""
self.details = ""
self.foreign = ""
}
} }
// MARK: - YHChildStepchildClass // MARK: - YHChildStepchildClass
...@@ -1218,9 +1247,9 @@ class YHSubsetNamePinyin: SmartCodable { ...@@ -1218,9 +1247,9 @@ class YHSubsetNamePinyin: SmartCodable {
// MARK: - YHCertificates // MARK: - YHCertificates
class YHCertificates: SmartCodable { class YHCertificates: SmartCodable {
var cnIdentityCard: YHCNIdentityCard? var cnIdentityCard: YHCNIdentityCard = YHCNIdentityCard()
var passport: YHCNIdentityCard? var passport: YHCNIdentityCard = YHCNIdentityCard()
var hkMacaoPass: YHCNIdentityCard? var hkMacaoPass: YHCNIdentityCard = YHCNIdentityCard()
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case cnIdentityCard = "cnIdentityCard" case cnIdentityCard = "cnIdentityCard"
...@@ -1231,25 +1260,20 @@ class YHCertificates: SmartCodable { ...@@ -1231,25 +1260,20 @@ class YHCertificates: SmartCodable {
required init() { required init() {
} }
init(cnIdentityCard: YHCNIdentityCard?, passport: YHCNIdentityCard?, hkMacaoPass: YHCNIdentityCard?) {
self.cnIdentityCard = cnIdentityCard
self.passport = passport
self.hkMacaoPass = hkMacaoPass
}
} }
// MARK: - YHCNIdentityCard // MARK: - YHCNIdentityCard
class YHCNIdentityCard: SmartCodable { class YHCNIdentityCard: SmartCodable {
static let longTime = "8888-01-01"
var id: Int = 0 var id: Int = 0
var number: String? var number: String = ""
var issueAt: String? var issueAt: String = ""
var issueDateStartAt: String? var issueDateStartAt: String = ""
var issueDateEndAt: String? var issueDateEndAt: String = ""
var imgFront: String? var imgFront: String = ""
var imgBack: String? var imgBack: String = ""
var passportType: Int = 0 var passPortType: Int = -1
enum CodingKeys: String, CodingKey { enum CodingKeys: String, CodingKey {
case id = "id" case id = "id"
...@@ -1259,22 +1283,12 @@ class YHCNIdentityCard: SmartCodable { ...@@ -1259,22 +1283,12 @@ class YHCNIdentityCard: SmartCodable {
case issueDateEndAt = "issue_date_end_at" case issueDateEndAt = "issue_date_end_at"
case imgFront = "img_front" case imgFront = "img_front"
case imgBack = "img_back" case imgBack = "img_back"
case passportType = "passport_type" case passPortType = "pass_port_type"
} }
required init() { required init() {
} }
init(id:Int, number: String?, issueAt:String?, issueDateStartAt: String?, imgFront: String?, imgBack: String?, passportType: Int) {
self.id = id
self.number = number
self.issueAt = issueAt
self.issueDateStartAt = issueDateStartAt
self.imgFront = imgFront
self.imgBack = imgBack
self.passportType = passportType
}
} }
// MARK: - YHHasDegreeJson // MARK: - YHHasDegreeJson
......
//
// YHFamilyMemberViewModel.swift
// galaxy
//
// Created by edy on 2024/3/2.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import Alamofire
class YHFamilyMemberViewModel {
var mainModel: YHFamilyMember = YHFamilyMember()
func getIDCardDataSource(_ isShowPrompt: Bool) -> [YHSectionItemModel] {
let item = YHItemModel(id: .id5, isNeed: true, title: "身份证", isUserKeyBoard: false, prompts: "请输入", message: nil, isShowPrompts: isShowPrompt)
let section = YHSectionItemModel(title: "中国身份证(选填)", models: [item])
let item1 = YHItemModel(id: .id6, isNeed: true, title: "港澳通行证(选填)", isUserKeyBoard: false, prompts: "请输入", message: nil, isShowPrompts: isShowPrompt)
let section1 = YHSectionItemModel(title: "中国身份证(选填)", models: [item1])
if mainModel.isNeedHandleHKPassPort() {
return [section, section1]
} else {
return [section]
}
}
func updateModel(_ item: YHItemModel) {
guard let type = item.id else { return }
if item.id == .id8 {
mainModel.certificates.cnIdentityCard.number = item.message ?? ""
} else if item.id == .id9 {
mainModel.certificates.cnIdentityCard.issueAt = item.message ?? ""
} else if item.id == .id10 {
mainModel.certificates.cnIdentityCard.issueDateStartAt = item.message ?? ""
} else if item.id == .id11 {
mainModel.certificates.cnIdentityCard.issueDateEndAt = item.message ?? ""
} else if item.id == .id12 {
mainModel.certificates.hkMacaoPass.number = item.message ?? ""
} else if item.id == .id13 {
mainModel.certificates.hkMacaoPass.issueAt = item.message ?? ""
} else if item.id == .id14 {
mainModel.certificates.hkMacaoPass.issueDateStartAt = item.message ?? ""
} else if item.id == .id15 {
mainModel.certificates.hkMacaoPass.issueDateEndAt = item.message ?? ""
} else if item.id == .id16 {
// mainModel.certificates.passport.passportType = item.value?.first ?? ""
} else if item.id == .id17 {
mainModel.certificates.passport.number = item.message ?? ""
} else if item.id == .id18 {
mainModel.certificates.passport.issueAt = item.message ?? ""
} else if item.id == .id19 {
mainModel.certificates.passport.issueDateStartAt = item.message ?? ""
} else if item.id == .id20 {
mainModel.certificates.passport.issueDateEndAt = item.message ?? ""
}
}
// 更新身份证
func updateModel(_ model: YHCNIDCardModel) {
if model.name.count != 0 {
mainModel.subsetName = model.name
}
if model.birth.count != 0 {
mainModel.birthday = model.birth.toTimeString()
}
if model.gender.count != 0 {
if model.gender == "女" {
mainModel.setMale(false)
} else {
mainModel.setMale(true)
}
}
if model.term_begins.count != 0 {
mainModel.certificates.hkMacaoPass.issueDateStartAt = model.term_begins.toTimeString()
}
if model.end_of_term.count != 0 {
mainModel.certificates.hkMacaoPass.issueDateEndAt = model.end_of_term.toTimeString()
}
if model.issuing_authority.count != 0 {
mainModel.certificates.hkMacaoPass.issueAt = model.issuing_authority
}
if model.card_num.count != 0 {
mainModel.certificates.hkMacaoPass.number = model.card_num
}
}
// 更新港澳通行证
func updateModel(_ model: YHHKIDCardModel) {
if model.name.count != 0 {
mainModel.subsetName = model.name
}
if model.birth.count != 0 {
mainModel.birthday = model.birth.toTimeString()
}
if model.gender.count != 0 {
if model.gender == "女" {
mainModel.setMale(false)
} else {
mainModel.setMale(true)
}
}
if model.term_begins.count != 0 {
mainModel.certificates.hkMacaoPass.issueDateStartAt = model.term_begins.toTimeString()
}
if model.end_of_term.count != 0 {
mainModel.certificates.hkMacaoPass.issueDateEndAt = model.end_of_term.toTimeString()
}
if model.issuing_authority.count != 0 {
mainModel.certificates.hkMacaoPass.issueAt = model.issuing_authority
}
if model.card_num.count != 0 {
mainModel.certificates.hkMacaoPass.number = model.card_num
}
}
func updateModel(_ type: YHCardType, isFront: Bool, url: String) {
switch type {
case .identity:
if isFront {
mainModel.certificates.cnIdentityCard.imgFront = url
} else {
mainModel.certificates.cnIdentityCard.imgBack = url
}
case .passport:
if isFront {
mainModel.certificates.hkMacaoPass.imgFront = url
} else {
mainModel.certificates.hkMacaoPass.imgBack = url
}
}
}
// 上传方法
func uploadImage(_ image: UIImage, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) {
let strUrl = "https://test-comserver.galaxy-immi.com/oss/upload/storage"
let boundary = UUID().uuidString
let headers: HTTPHeaders = [
"Content-type": "multipart/form-data; boundary=\(boundary)",
"businessCode": "4001001"
]
let _ = YHNetRequest.uplaodRequest(url: strUrl, headers: headers, image: image) { [weak self] json, code in
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(json.data as? String, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(nil, error)
}
} failBlock: { err in
callBackBlock(nil, err)
}
}
func getPublicImageUrl(_ url: String, callBackBlock:@escaping (_ success: String?, _ error:YHErrorModel?)->()) {
let strUrl = "https://test-comserver.galaxy-immi.com/oss/storage/convertToPublicURL" + "?fileUrl=\(url)"
let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in
//1. json字符串 转 对象
guard let _ = self else { return }
if json.code == 200 {
callBackBlock(json.data as? String, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(nil, error)
}
} failBlock: { err in
callBackBlock(nil,err)
}
}
func requestCnIDCardMessage(_ url: String, callBackBlock:@escaping (_ success: Bool, _ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.OrderInformation.cnIdCard
let params: [String : Any] = ["url": url]
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
if json.code == 200 {
let dic = json.data
guard let result = YHCNIDCardModel.deserialize(from: dic as? Dictionary) else {
callBackBlock(false, nil)
return
}
self.updateModel(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)
}
}
func requestHkIDCardMessage(_ url: String, callBackBlock:@escaping (_ success: Bool, _ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.OrderInformation.hkIdCard
let params: [String : Any] = ["url": url]
let _ = YHNetRequest.postRequest(url: strUrl, params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
if json.code == 200 {
let dic = json.data
guard let result = YHHKIDCardModel.deserialize(from: dic as? Dictionary) else {
callBackBlock(false, nil)
return
}
self.updateModel(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)
}
}
}
...@@ -14,8 +14,8 @@ class YHFamilyRequestViewModel { ...@@ -14,8 +14,8 @@ class YHFamilyRequestViewModel {
//请求所有家庭成员信息 //请求所有家庭成员信息
func getFamilyInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) { func getFamilyInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
// let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Family.familyInfoApi let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Family.familyInfoApi
let strUrl = "http://192.168.34.187:8808/" + YHAllApiName.Family.familyInfoApi // let strUrl = "http://192.168.34.187:8808/" + YHAllApiName.Family.familyInfoApi
YHHUD.show(.progress(message: "数据加载中...")) YHHUD.show(.progress(message: "数据加载中..."))
...@@ -41,15 +41,20 @@ class YHFamilyRequestViewModel { ...@@ -41,15 +41,20 @@ class YHFamilyRequestViewModel {
} }
// 添加家庭成员 // 添加家庭成员
func addOrSaveFamilyMember(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) { func addOrSaveFamilyMember(params:[String:Any], isShowLoading:Bool = true, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
YHHUD.show(.progress(message: "数据加载中...")) if isShowLoading {
YHHUD.show(.progress(message: "数据加载中..."))
}
let strUrl = "http://192.168.34.187:8808/" + YHAllApiName.Family.familyInfoApi let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Family.familyInfoApi
// let strUrl = "http://192.168.34.187:8808/" + YHAllApiName.Family.familyInfoApi
let _ = YHNetRequest.postRequest(url: strUrl, params:params) {[weak self] json, code in let _ = YHNetRequest.postRequest(url: strUrl, params:params) {[weak self] json, code in
YHHUD.hide() if isShowLoading {
YHHUD.hide()
}
guard let self = self else { return } guard let self = self else { return }
printLog("model 是 ==> \(json)") printLog("model 是 ==> \(json)")
if json.code == NetWorkCode.success.rawValue { if json.code == NetWorkCode.success.rawValue {
......
...@@ -108,9 +108,9 @@ enum YHPicerViewProfessionType: Int { ...@@ -108,9 +108,9 @@ enum YHPicerViewProfessionType: Int {
enum YHPickerViewGenderType: Int { enum YHPickerViewGenderType: Int {
// 男 // 男
case male = 0 case male = 1
// 女 // 女
case female = 1 case female = 2
} }
enum YHPickerViewCertificateType: Int { enum YHPickerViewCertificateType: Int {
......
...@@ -10,14 +10,15 @@ ...@@ -10,14 +10,15 @@
/* /*
// (1) 直接传index 此处的index是后台的数值,并非行数 // (1) 直接传index 此处的index是后台的数值,并非行数
YHSheetPickerView.show(type: .degree, selectIndex: 1) { YHSheetPickerView.show(type: .occupation, selectIndex:0) {
selectItem in [weak self] selectItem in
guard let self = self else { return }
} }
// (2) 直接传字符串值 // (2) 直接传字符串值
YHSheetPickerView.show(type: .degree, selectTitle:"博士学位") { YHSheetPickerView.show(type: .occupation, selectTitle:"在职") {
selectItem in [weak self] selectItem in
guard let self = self else { return }
} }
// 如何扩展新类型 // 如何扩展新类型
...@@ -124,7 +125,7 @@ class YHSheetPickerView: UIView { ...@@ -124,7 +125,7 @@ class YHSheetPickerView: UIView {
} }
func showSelectRow() { func showSelectRow() {
if let arr = dataSource[type], selectRow < arr.count { if let arr = Self.dataSource[type], selectRow < arr.count {
pickerView.selectRow(selectRow, inComponent: 0, animated: true) pickerView.selectRow(selectRow, inComponent: 0, animated: true)
} else { } else {
...@@ -148,16 +149,16 @@ class YHSheetPickerView: UIView { ...@@ -148,16 +149,16 @@ class YHSheetPickerView: UIView {
picker.show() picker.show()
} }
lazy var dataSource:[YHSheetPickerViewType: [YHSheetPickerViewItem]] = { static var dataSource:[YHSheetPickerViewType: [YHSheetPickerViewItem]] =
return [ [
// 默认无 // 默认无
.none:[], .none:[],
// 学位 // 学位
.degree: .degree:
[YHSheetPickerViewItem(title:"学士学位".local, index:0), [YHSheetPickerViewItem(title:"学士学位".local, index:1),
YHSheetPickerViewItem(title:"硕士学位".local, index:1), YHSheetPickerViewItem(title:"硕士学位".local, index:2),
YHSheetPickerViewItem(title:"博士学位".local, index:2) YHSheetPickerViewItem(title:"博士学位".local, index:3)
], ],
// 婚姻 // 婚姻
...@@ -202,8 +203,8 @@ class YHSheetPickerView: UIView { ...@@ -202,8 +203,8 @@ class YHSheetPickerView: UIView {
// 性别 // 性别
.gender: .gender:
[YHSheetPickerViewItem(title:"男".local, index:0), [YHSheetPickerViewItem(title:"男".local, index:1),
YHSheetPickerViewItem(title:"女".local, index:1), YHSheetPickerViewItem(title:"女".local, index:2),
], ],
// 证件 // 证件
...@@ -235,8 +236,8 @@ class YHSheetPickerView: UIView { ...@@ -235,8 +236,8 @@ class YHSheetPickerView: UIView {
// 学位颁发地区 // 学位颁发地区
.degreeLocation: .degreeLocation:
[YHSheetPickerViewItem(title:"国内 (颁发)".local, index:0), [YHSheetPickerViewItem(title:"国内 (颁发)".local, index:1),
YHSheetPickerViewItem(title:"国外 (颁发)".local, index:1), YHSheetPickerViewItem(title:"国外 (颁发)".local, index:2),
], ],
// 专业证书 // 专业证书
...@@ -272,7 +273,6 @@ class YHSheetPickerView: UIView { ...@@ -272,7 +273,6 @@ class YHSheetPickerView: UIView {
YHSheetPickerViewItem(title:"其他".local, index:10), YHSheetPickerViewItem(title:"其他".local, index:10),
], ],
] ]
}()
func createUI() { func createUI() {
...@@ -370,7 +370,7 @@ extension YHSheetPickerView { ...@@ -370,7 +370,7 @@ extension YHSheetPickerView {
// 返回所在行的数据 // 返回所在行的数据
func getPickerViewItem(row:Int) -> YHSheetPickerViewItem? { func getPickerViewItem(row:Int) -> YHSheetPickerViewItem? {
if let arr = dataSource[type] { if let arr = Self.dataSource[type] {
for (index, item) in arr.enumerated() { for (index, item) in arr.enumerated() {
if index == row { if index == row {
return item return item
...@@ -382,7 +382,7 @@ extension YHSheetPickerView { ...@@ -382,7 +382,7 @@ extension YHSheetPickerView {
// 返回对应index的数据所在行 // 返回对应index的数据所在行
func getRowOfPickerViewItem(index:Int) -> Int { func getRowOfPickerViewItem(index:Int) -> Int {
if let arr = dataSource[type] { if let arr = Self.dataSource[type] {
for (row, item) in arr.enumerated() { for (row, item) in arr.enumerated() {
if item.index == index { if item.index == index {
return row return row
...@@ -396,7 +396,7 @@ extension YHSheetPickerView { ...@@ -396,7 +396,7 @@ extension YHSheetPickerView {
func getRowOfPickerViewItem(title:String?) -> Int { func getRowOfPickerViewItem(title:String?) -> Int {
guard let title = title else { return 0 } guard let title = title else { return 0 }
if let arr = dataSource[type] { if let arr = Self.dataSource[type] {
for (row, item) in arr.enumerated() { for (row, item) in arr.enumerated() {
if item.title == title { if item.title == title {
return row return row
...@@ -406,6 +406,29 @@ extension YHSheetPickerView { ...@@ -406,6 +406,29 @@ extension YHSheetPickerView {
return 0 return 0
} }
// 根据index获取item
static func getItem(type:YHSheetPickerViewType, index:Int)-> YHSheetPickerViewItem? {
if let arr = dataSource[type], arr.count > 0 {
for item in arr {
if item.index == index {
return item
}
}
}
return nil
}
// 根据名称获取item
static func getItem(type:YHSheetPickerViewType, title:String)-> YHSheetPickerViewItem? {
if let arr = dataSource[type], arr.count > 0 {
for item in arr {
if item.title == title {
return item
}
}
}
return nil
}
} }
// MARK: - UIPickerViewDelegate // MARK: - UIPickerViewDelegate
...@@ -416,14 +439,14 @@ extension YHSheetPickerView: UIPickerViewDelegate, UIPickerViewDataSource { ...@@ -416,14 +439,14 @@ extension YHSheetPickerView: UIPickerViewDelegate, UIPickerViewDataSource {
} }
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if let arr = dataSource[type], !arr.isEmpty { if let arr = Self.dataSource[type], !arr.isEmpty {
return arr.count return arr.count
} }
return 0 return 0
} }
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if let arr = dataSource[type] { if let arr = Self.dataSource[type] {
if 0 <= row && row < arr.count { if 0 <= row && row < arr.count {
let item :YHSheetPickerViewItem = arr[row] let item :YHSheetPickerViewItem = arr[row]
return item.title return item.title
...@@ -433,7 +456,7 @@ extension YHSheetPickerView: UIPickerViewDelegate, UIPickerViewDataSource { ...@@ -433,7 +456,7 @@ extension YHSheetPickerView: UIPickerViewDelegate, UIPickerViewDataSource {
} }
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if let arr = dataSource[type] { if let arr = Self.dataSource[type] {
if 0 <= row && row < arr.count { if 0 <= row && row < arr.count {
let item :YHSheetPickerViewItem = arr[row] let item :YHSheetPickerViewItem = arr[row]
print(item.title) print(item.title)
...@@ -458,7 +481,7 @@ extension YHSheetPickerView: UIPickerViewDelegate, UIPickerViewDataSource { ...@@ -458,7 +481,7 @@ extension YHSheetPickerView: UIPickerViewDelegate, UIPickerViewDataSource {
label.numberOfLines = 2 label.numberOfLines = 2
label.font = UIFont.PFSC_R(ofSize: 14) label.font = UIFont.PFSC_R(ofSize: 14)
label.text = "" label.text = ""
if let arr = dataSource[type] { if let arr = Self.dataSource[type] {
if 0 <= row && row < arr.count { if 0 <= row && row < arr.count {
let item :YHSheetPickerViewItem = arr[row] let item :YHSheetPickerViewItem = arr[row]
label.text = item.title label.text = item.title
......
...@@ -35,7 +35,7 @@ class YHFormItemDegreeInfoCell: UITableViewCell { ...@@ -35,7 +35,7 @@ class YHFormItemDegreeInfoCell: UITableViewCell {
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes) let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
let starRange = NSRange(location: 0, length: 1) let starRange = NSRange(location: 0, length: 1)
if isNeed { if isNeed {
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor(hex:0xFF3A3A), range: starRange) questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.failColor, range: starRange)
} }
titleLabel.attributedText = questionAttrStr titleLabel.attributedText = questionAttrStr
...@@ -57,6 +57,11 @@ class YHFormItemDegreeInfoCell: UITableViewCell { ...@@ -57,6 +57,11 @@ class YHFormItemDegreeInfoCell: UITableViewCell {
} }
} }
func showTips(isShowDegreeTips:Bool, isShowPlaceTips:Bool) {
degreeView.setTips("请选择学位".local, isShow:isShowDegreeTips)
areaView.setTips("请选择颁发地区".local, isShow: isShowPlaceTips)
}
lazy var titleLabel: UILabel = { lazy var titleLabel: UILabel = {
let label = UILabel() let label = UILabel()
label.textColor = UIColor.mainTextColor label.textColor = UIColor.mainTextColor
...@@ -163,7 +168,7 @@ class HKDegreeInfoItemView: UIView { ...@@ -163,7 +168,7 @@ class HKDegreeInfoItemView: UIView {
.foregroundColor: UIColor.mainTextColor] .foregroundColor: UIColor.mainTextColor]
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes) let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
let starRange = NSRange(location: 0, length: 1) let starRange = NSRange(location: 0, length: 1)
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor(hex:0xFF3A3A), range: starRange) questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.failColor, range: starRange)
titleLabel.attributedText = questionAttrStr titleLabel.attributedText = questionAttrStr
} else { } else {
......
...@@ -49,7 +49,7 @@ class YHFormItemDoubleChoiceCell: UITableViewCell { ...@@ -49,7 +49,7 @@ class YHFormItemDoubleChoiceCell: UITableViewCell {
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes) let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
if isMust { if isMust {
let starRange = NSRange(location: 0, length: 1) let starRange = NSRange(location: 0, length: 1)
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor(hex:0xFF3A3A), range: starRange) questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.failColor, range: starRange)
} }
titleLabel.attributedText = questionAttrStr titleLabel.attributedText = questionAttrStr
......
...@@ -44,7 +44,7 @@ class YHFormItemEnterDetailCell: UITableViewCell { ...@@ -44,7 +44,7 @@ class YHFormItemEnterDetailCell: UITableViewCell {
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes) let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
if isMust { if isMust {
let starRange = NSRange(location: 0, length: 1) let starRange = NSRange(location: 0, length: 1)
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor(hex:0xFF3A3A), range: starRange) questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.failColor, range: starRange)
} }
titleLabel.attributedText = questionAttrStr titleLabel.attributedText = questionAttrStr
} else { } else {
......
...@@ -20,7 +20,7 @@ class YHFormItemExpireDateCell: UITableViewCell { ...@@ -20,7 +20,7 @@ class YHFormItemExpireDateCell: UITableViewCell {
var isMust = false var isMust = false
var placeHolder:String? = "请选择" var placeHolder:String? = "请选择"
var clickBlock:(()->Void)? var clickBlock:((Bool)->Void)?
// 是否隐藏顶部分割线 // 是否隐藏顶部分割线
var isHiddenTopLine:Bool = false { var isHiddenTopLine:Bool = false {
didSet { didSet {
...@@ -38,7 +38,7 @@ class YHFormItemExpireDateCell: UITableViewCell { ...@@ -38,7 +38,7 @@ class YHFormItemExpireDateCell: UITableViewCell {
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes) let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
if isMust { if isMust {
let starRange = NSRange(location: 0, length: 1) let starRange = NSRange(location: 0, length: 1)
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor(hex:0xFF3A3A), range: starRange) questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.failColor, range: starRange)
} }
titleLabel.attributedText = questionAttrStr titleLabel.attributedText = questionAttrStr
} else { } else {
...@@ -47,7 +47,7 @@ class YHFormItemExpireDateCell: UITableViewCell { ...@@ -47,7 +47,7 @@ class YHFormItemExpireDateCell: UITableViewCell {
} }
} }
var isLontTime:Bool = false { var isLongTime:Bool = false {
didSet { didSet {
updateUI() updateUI()
} }
...@@ -184,13 +184,17 @@ class YHFormItemExpireDateCell: UITableViewCell { ...@@ -184,13 +184,17 @@ class YHFormItemExpireDateCell: UITableViewCell {
func updateUI() { func updateUI() {
detailLabel.isHidden = isLontTime detailLabel.isHidden = isLongTime
tipsLabel.isHidden = isLontTime if isLongTime {
tipsLabel.isHidden = true
} else {
tipsLabel.isHidden = !isEmptyString(detail)
}
longTimeBtn.isSelected = isLongTime
longTimeBtn.snp.remakeConstraints { make in longTimeBtn.snp.remakeConstraints { make in
make.size.equalTo(CGSizeMake(longTimeBtnWidth, 40)) make.size.equalTo(CGSizeMake(longTimeBtnWidth, 40))
make.centerY.equalToSuperview() make.centerY.equalTo(titleLabel)
if isLontTime { if isLongTime {
make.left.equalTo(detailLabel) make.left.equalTo(detailLabel)
} else { } else {
make.right.equalToSuperview().offset(-16) make.right.equalToSuperview().offset(-16)
...@@ -200,11 +204,10 @@ class YHFormItemExpireDateCell: UITableViewCell { ...@@ -200,11 +204,10 @@ class YHFormItemExpireDateCell: UITableViewCell {
@objc func didClickLongTimeBtn() { @objc func didClickLongTimeBtn() {
longTimeBtn.isSelected = !longTimeBtn.isSelected isLongTime = !isLongTime
isLontTime = longTimeBtn.isSelected
if let clickBlock = clickBlock { if let clickBlock = clickBlock {
clickBlock() clickBlock(isLongTime)
} }
} }
} }
...@@ -35,7 +35,7 @@ class YHFormItemInputTextCell: UITableViewCell { ...@@ -35,7 +35,7 @@ class YHFormItemInputTextCell: UITableViewCell {
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes) let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
if isMust { if isMust {
let starRange = NSRange(location: 0, length: 1) let starRange = NSRange(location: 0, length: 1)
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor(hex:0xFF3A3A), range: starRange) questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.failColor, range: starRange)
} }
titleLabel.attributedText = questionAttrStr titleLabel.attributedText = questionAttrStr
} else { } else {
...@@ -46,7 +46,7 @@ class YHFormItemInputTextCell: UITableViewCell { ...@@ -46,7 +46,7 @@ class YHFormItemInputTextCell: UITableViewCell {
var placeHolder:String? { var placeHolder:String? {
didSet { didSet {
if let placeHolder = placeHolder { if let placeHolder = placeHolder, !placeHolder.isEmpty {
textField.attributedPlaceholder = NSAttributedString(string: placeHolder, attributes: [NSAttributedString.Key.foregroundColor : UIColor.placeHolderColor]) textField.attributedPlaceholder = NSAttributedString(string: placeHolder, attributes: [NSAttributedString.Key.foregroundColor : UIColor.placeHolderColor])
} else { } else {
textField.attributedPlaceholder = NSAttributedString(string: "请输入", attributes: [NSAttributedString.Key.foregroundColor : UIColor.placeHolderColor]) textField.attributedPlaceholder = NSAttributedString(string: "请输入", attributes: [NSAttributedString.Key.foregroundColor : UIColor.placeHolderColor])
......
...@@ -35,7 +35,7 @@ class YHFormItemQuestionsCell: UITableViewCell { ...@@ -35,7 +35,7 @@ class YHFormItemQuestionsCell: UITableViewCell {
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes) let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
if isMust { if isMust {
let starRange = NSRange(location: 0, length: 1) let starRange = NSRange(location: 0, length: 1)
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor(hex:0xFF3A3A), range: starRange) questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.failColor, range: starRange)
} }
titleLabel.attributedText = questionAttrStr titleLabel.attributedText = questionAttrStr
......
...@@ -34,7 +34,7 @@ class YHFormItemSelectSheetCell: UITableViewCell { ...@@ -34,7 +34,7 @@ class YHFormItemSelectSheetCell: UITableViewCell {
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes) let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
if isMust { if isMust {
let starRange = NSRange(location: 0, length: 1) let starRange = NSRange(location: 0, length: 1)
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor(hex:0xFF3A3A), range: starRange) questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.failColor, range: starRange)
} }
titleLabel.attributedText = questionAttrStr titleLabel.attributedText = questionAttrStr
} else { } else {
...@@ -51,7 +51,7 @@ class YHFormItemSelectSheetCell: UITableViewCell { ...@@ -51,7 +51,7 @@ class YHFormItemSelectSheetCell: UITableViewCell {
detailLabel.text = detail detailLabel.text = detail
detailLabel.textColor = detailColor detailLabel.textColor = detailColor
} else { } else {
detailLabel.text = placeHolder detailLabel.text = isEmptyString(placeHolder) ? "请选择" : placeHolder
detailLabel.textColor = placeHolderColor detailLabel.textColor = placeHolderColor
} }
} }
......
...@@ -32,6 +32,9 @@ class YHMainInformationModel: YHBaseModel { ...@@ -32,6 +32,9 @@ class YHMainInformationModel: YHBaseModel {
var birth_place: YHAddressModel = YHAddressModel() var birth_place: YHAddressModel = YHAddressModel()
var address: YHAddressModel = YHAddressModel() var address: YHAddressModel = YHAddressModel()
var certificates: YHCertificatesModels = YHCertificatesModels() var certificates: YHCertificatesModels = YHCertificatesModels()
var live_address: String = ""
var live_address_detail: String = ""
} }
class YHUserNameModel: YHBaseModel { class YHUserNameModel: YHBaseModel {
......
...@@ -60,7 +60,7 @@ class YHItemView: UIView { ...@@ -60,7 +60,7 @@ class YHItemView: UIView {
showPromptLabel = { showPromptLabel = {
let label = UILabel() let label = UILabel()
label.textColor = UIColor.red label.textColor = UIColor.failColor
label.font = UIFont.PFSC_M(ofSize: 12) label.font = UIFont.PFSC_M(ofSize: 12)
return label return label
}() }()
...@@ -142,7 +142,7 @@ class YHItemView: UIView { ...@@ -142,7 +142,7 @@ class YHItemView: UIView {
] ]
let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes) let questionAttrStr = NSMutableAttributedString(string: str, attributes: attributes)
let starRange = NSRange(location: 0, length: 1) let starRange = NSRange(location: 0, length: 1)
questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor(hex:0xFF3A3A), range: starRange) questionAttrStr.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.failColor, range: starRange)
titleLabel.attributedText = questionAttrStr titleLabel.attributedText = questionAttrStr
} else { } else {
let str = dataSource.title ?? "" let str = dataSource.title ?? ""
......
...@@ -50,6 +50,10 @@ class YHScoreDetailViewController: YHBaseViewController { ...@@ -50,6 +50,10 @@ class YHScoreDetailViewController: YHBaseViewController {
//2.0 //2.0
loadData() loadData()
//3.保存orderId 提供给后续UI使用
UserDefaults.standard.set(orderId, forKey: "orderIdForPreview")
UserDefaults.standard.synchronize()
} }
} }
......
...@@ -54,10 +54,7 @@ extension YHOtherInfoFillViewController { ...@@ -54,10 +54,7 @@ extension YHOtherInfoFillViewController {
bottomView.block = { tag in bottomView.block = { tag in
if tag == 0 { if tag == 0 {
//点击了保存按钮 //点击了保存按钮
// let arr = self.basicInfoVM.arrBasicInfoSessionDataForEdit
// printLog(arr)
printLog("点击了保存按钮") printLog("点击了保存按钮")
self.saveData() self.saveData()
} else { } else {
...@@ -94,35 +91,28 @@ extension YHOtherInfoFillViewController { ...@@ -94,35 +91,28 @@ extension YHOtherInfoFillViewController {
private func saveData() { private func saveData() {
let model = otherInfoVM.otherInfoFillData
model?.is_update = false
let str = model?.toJSONString()
printLog(str)
//保存 //保存
if let param = model?.toDictionary() { submitDataOp(flag: false)
}
private func submitData() {
//提交
if dataIsOK() == true {
submitDataOp(flag: true)
} else {
printLog("param ==>") let model = otherInfoVM.otherInfoFillData
printLog(param) model?.needCheckFlag = true
otherInfoVM.saveOtherInfo(params: param) { success, error in YHHUD.flash(message: "您还有信息未填写")
if success == true { homeTableView.reloadData()
YHHUD.flash(message: "操作成功")
} else {
let msg = error?.errorMsg ?? "操作失败"
YHHUD.flash(message: msg)
}
}
} else {
printLog("error: 参数 转换 出错")
} }
} }
private func submitData() { private func submitDataOp(flag : Bool) {
//提交 //提交
let model = otherInfoVM.otherInfoFillData let model = otherInfoVM.otherInfoFillData
model?.is_update = true model?.is_update = flag
//保存 //保存
if let param = model?.toDictionary() { if let param = model?.toDictionary() {
...@@ -132,6 +122,11 @@ extension YHOtherInfoFillViewController { ...@@ -132,6 +122,11 @@ extension YHOtherInfoFillViewController {
otherInfoVM.saveOtherInfo(params: param) { success, error in otherInfoVM.saveOtherInfo(params: param) { success, error in
if success == true { if success == true {
YHHUD.flash(message: "操作成功") YHHUD.flash(message: "操作成功")
if flag == true {
DispatchQueue.main.asyncAfter(wallDeadline: .now() + 1.5) {[weak self] in
self?.navigationController?.popViewController(animated: true)
}
}
} else { } else {
let msg = error?.errorMsg ?? "操作失败" let msg = error?.errorMsg ?? "操作失败"
YHHUD.flash(message: msg) YHHUD.flash(message: msg)
...@@ -141,6 +136,58 @@ extension YHOtherInfoFillViewController { ...@@ -141,6 +136,58 @@ extension YHOtherInfoFillViewController {
printLog("error: 参数 转换 出错") printLog("error: 参数 转换 出错")
} }
} }
//检查数据是否合法
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
}
}
//2.语言水平
if model.language_detail?.levelDes.isEmpty == true {
returnValue = false
return returnValue
}
//3.专业技能行业
if model.profession?.optionDes.isEmpty == true {
returnValue = false
return returnValue
}
//4.辅助资料
if let model = model.question {
//问题1
if model.professional_qualification < 1 {
returnValue = false
return returnValue
}
//问题2
if model.paper < 1 {
returnValue = false
return returnValue
}
//问题3
if model.scholarship < 1 {
returnValue = false
return returnValue
}
//问题4
if model.media_interview < 1 {
returnValue = false
return returnValue
}
}
}
return returnValue
}
} }
// MARK: - delegates // MARK: - delegates
...@@ -184,4 +231,3 @@ extension YHOtherInfoFillViewController : UITableViewDelegate,UITableViewDataSou ...@@ -184,4 +231,3 @@ extension YHOtherInfoFillViewController : UITableViewDelegate,UITableViewDataSou
return cell return cell
} }
} }
...@@ -15,7 +15,11 @@ class YHOtherInfoFillModel: SmartCodable { ...@@ -15,7 +15,11 @@ class YHOtherInfoFillModel: SmartCodable {
var language_detail: LanguageDetail? var language_detail: LanguageDetail?
var profession: Profession? var profession: Profession?
var question: Question? var question: Question?
var is_update : Bool = false var is_update : Bool = false //true-提交 false-保存
//以下为本地使用的参数
var needCheckFlag : Bool = false //是否检查有效性
required init() { required init() {
...@@ -32,6 +36,11 @@ class Residence : SmartCodable { ...@@ -32,6 +36,11 @@ class Residence : SmartCodable {
var order_id: Int = -1 var order_id: Int = -1
var end_time_checked: Bool = false //是否勾选 至今 var end_time_checked: Bool = false //是否勾选 至今
//以下为本地使用的参数
var needCheckFlag : Bool = false //是否检查有效性
required init() { required init() {
} }
} }
...@@ -44,6 +53,10 @@ class LanguageDetail : SmartCodable { ...@@ -44,6 +53,10 @@ class LanguageDetail : SmartCodable {
var name: String = "" var name: String = ""
var remark: String = "" var remark: String = ""
//以下为本地使用的参数
var needCheckFlag : Bool = false //是否检查有效性
required init() { required init() {
} }
...@@ -55,6 +68,10 @@ class Profession : SmartCodable{ ...@@ -55,6 +68,10 @@ class Profession : SmartCodable{
var optionDes : String = "" var optionDes : String = ""
var remark: String = "" var remark: String = ""
//以下为本地使用的参数
var needCheckFlag : Bool = false //是否检查有效性
required init() { required init() {
} }
} }
...@@ -69,6 +86,10 @@ class Question : SmartCodable { ...@@ -69,6 +86,10 @@ class Question : SmartCodable {
var professional_awards : String = "" var professional_awards : String = ""
var other_information: String = "" var other_information: String = ""
//以下为本地使用的参数
var needCheckFlag : Bool = false //是否检查有效性
required init() { required init() {
} }
} }
...@@ -22,17 +22,6 @@ class YHOtherInfoFillCell: UITableViewCell { ...@@ -22,17 +22,6 @@ class YHOtherInfoFillCell: UITableViewCell {
} }
} }
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func layoutSubviews() {
super.layoutSubviews()
// dotLineLayer.path = UIBezierPath(roundedRect: addBtn.bounds, cornerRadius: kCornerRadius6).cgPath
}
lazy var addBtn: UIButton = { lazy var addBtn: UIButton = {
let btn = UIButton() let btn = UIButton()
btn.setTitle("新增居住信息".local, for: .normal) btn.setTitle("新增居住信息".local, for: .normal)
...@@ -107,6 +96,7 @@ extension YHOtherInfoFillCell { ...@@ -107,6 +96,7 @@ extension YHOtherInfoFillCell {
} }
let residenceView = YHOtherResidenceFillView(frame: .zero) let residenceView = YHOtherResidenceFillView(frame: .zero)
item.needCheckFlag = dataModel.needCheckFlag
residenceView.dataModel = item residenceView.dataModel = item
holdView1.addSubview(residenceView) holdView1.addSubview(residenceView)
...@@ -139,6 +129,7 @@ extension YHOtherInfoFillCell { ...@@ -139,6 +129,7 @@ extension YHOtherInfoFillCell {
} }
let residenceView = YHOtherResidenceFillView(frame: .zero) let residenceView = YHOtherResidenceFillView(frame: .zero)
item.needCheckFlag = dataModel.needCheckFlag
residenceView.dataModel = item residenceView.dataModel = item
holdView1.addSubview(residenceView) holdView1.addSubview(residenceView)
residenceView.snp.makeConstraints { make in residenceView.snp.makeConstraints { make in
...@@ -165,7 +156,11 @@ extension YHOtherInfoFillCell { ...@@ -165,7 +156,11 @@ extension YHOtherInfoFillCell {
let residenceView = YHOtherResidenceFillView(frame: .zero) let residenceView = YHOtherResidenceFillView(frame: .zero)
if dataModel.residences.count > 0 { if dataModel.residences.count > 0 {
residenceView.dataModel = dataModel.residences[0] //for test hjl let item = dataModel.residences[0]
item.needCheckFlag = dataModel.needCheckFlag
residenceView.dataModel = item
} else {
printLog("error: 数据源有问题")
} }
holdView1.addSubview(residenceView) holdView1.addSubview(residenceView)
...@@ -220,6 +215,7 @@ extension YHOtherInfoFillCell { ...@@ -220,6 +215,7 @@ extension YHOtherInfoFillCell {
let view = languageView let view = languageView
view.updateKeyName(name: "您的语言水平与下列哪一项符合", keyValue:dataModel.language_detail?.levelDes ?? "") view.updateKeyName(name: "您的语言水平与下列哪一项符合", keyValue:dataModel.language_detail?.levelDes ?? "")
view.needCheckFlag = dataModel.needCheckFlag
view.type = 2 view.type = 2
holdView2.addSubview(view) holdView2.addSubview(view)
view.snp.makeConstraints { make in view.snp.makeConstraints { make in
...@@ -227,7 +223,6 @@ extension YHOtherInfoFillCell { ...@@ -227,7 +223,6 @@ extension YHOtherInfoFillCell {
make.left.equalToSuperview().offset(18) make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18) make.right.equalToSuperview().offset(-18)
make.height.equalTo(YHOtherSelecteItemView.getViewHBy(type: 2))
make.bottom.equalToSuperview() make.bottom.equalToSuperview()
} }
...@@ -235,6 +230,7 @@ extension YHOtherInfoFillCell { ...@@ -235,6 +230,7 @@ extension YHOtherInfoFillCell {
view.addGestureRecognizer(tap) view.addGestureRecognizer(tap)
} }
holdView2.layoutIfNeeded()
//3.专业技能行业 //3.专业技能行业
...@@ -259,14 +255,13 @@ extension YHOtherInfoFillCell { ...@@ -259,14 +255,13 @@ extension YHOtherInfoFillCell {
let view = skillView let view = skillView
view.updateKeyName(name: "最能代表你的专业技能的行业", keyValue: dataModel.profession?.optionDes ?? "") view.updateKeyName(name: "最能代表你的专业技能的行业", keyValue: dataModel.profession?.optionDes ?? "")
view.needCheckFlag = dataModel.needCheckFlag
view.type = 2 view.type = 2
holdView3.addSubview(view) holdView3.addSubview(view)
view.snp.makeConstraints { make in view.snp.makeConstraints { make in
make.top.equalTo(sessionView.snp.bottom) make.top.equalTo(sessionView.snp.bottom)
make.left.equalToSuperview().offset(18) make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18) make.right.equalToSuperview().offset(-18)
make.height.equalTo(YHOtherSelecteItemView.getViewHBy(type: 2))
make.bottom.equalToSuperview() make.bottom.equalToSuperview()
} }
...@@ -275,6 +270,7 @@ extension YHOtherInfoFillCell { ...@@ -275,6 +270,7 @@ extension YHOtherInfoFillCell {
skillView.addGestureRecognizer(tap) skillView.addGestureRecognizer(tap)
} }
holdView3.layoutIfNeeded()
//4.辅助资料 //4.辅助资料
...@@ -301,6 +297,7 @@ extension YHOtherInfoFillCell { ...@@ -301,6 +297,7 @@ extension YHOtherInfoFillCell {
//1、您是否有行业内的专业资格证书? //1、您是否有行业内的专业资格证书?
let fzView1 = YHOtherYesOrNoItemView(frame: .zero) let fzView1 = YHOtherYesOrNoItemView(frame: .zero)
fzView1.updateUI(title: "1、您是否有行业内的专业资格证书?", answer: dataModel.question?.professional_qualification ?? -1) fzView1.updateUI(title: "1、您是否有行业内的专业资格证书?", answer: dataModel.question?.professional_qualification ?? -1)
fzView1.needCheckFlag = dataModel.needCheckFlag
fzView1.block = { answer in fzView1.block = { answer in
dataModel.question?.professional_qualification = answer dataModel.question?.professional_qualification = answer
} }
...@@ -315,6 +312,7 @@ extension YHOtherInfoFillCell { ...@@ -315,6 +312,7 @@ extension YHOtherInfoFillCell {
// 2、您是否在期刊或杂志上发表过论文、文章、书籍等(与工作、资质有关的)? // 2、您是否在期刊或杂志上发表过论文、文章、书籍等(与工作、资质有关的)?
let fzView2 = YHOtherYesOrNoItemView(frame: .zero) let fzView2 = YHOtherYesOrNoItemView(frame: .zero)
fzView2.updateUI(title: "2、您是否在期刊或杂志上发表过论文、文章、书籍等(与工作、资质有关的)?", answer: dataModel.question?.paper ?? -1) fzView2.updateUI(title: "2、您是否在期刊或杂志上发表过论文、文章、书籍等(与工作、资质有关的)?", answer: dataModel.question?.paper ?? -1)
fzView2.needCheckFlag = dataModel.needCheckFlag
fzView2.block = { answer in fzView2.block = { answer in
dataModel.question?.paper = answer dataModel.question?.paper = answer
} }
...@@ -328,6 +326,7 @@ extension YHOtherInfoFillCell { ...@@ -328,6 +326,7 @@ extension YHOtherInfoFillCell {
// 3、您是否有大学奖学金证明、专利证书、获奖证书(工作单位颁发的可以)? // 3、您是否有大学奖学金证明、专利证书、获奖证书(工作单位颁发的可以)?
let fzView3 = YHOtherYesOrNoItemView(frame: .zero) let fzView3 = YHOtherYesOrNoItemView(frame: .zero)
fzView3.updateUI(title: "3、您是否有大学奖学金证明、专利证书、获奖证书(工作单位颁发的可以)?", answer: dataModel.question?.scholarship ?? -1) fzView3.updateUI(title: "3、您是否有大学奖学金证明、专利证书、获奖证书(工作单位颁发的可以)?", answer: dataModel.question?.scholarship ?? -1)
fzView3.needCheckFlag = dataModel.needCheckFlag
fzView3.block = { answer in fzView3.block = { answer in
dataModel.question?.scholarship = answer dataModel.question?.scholarship = answer
} }
...@@ -341,6 +340,7 @@ extension YHOtherInfoFillCell { ...@@ -341,6 +340,7 @@ extension YHOtherInfoFillCell {
// 4、您是否被媒体采访过,专访您的文章被发表在杂志上或网络上? // 4、您是否被媒体采访过,专访您的文章被发表在杂志上或网络上?
let fzView4 = YHOtherYesOrNoItemView(frame: .zero) let fzView4 = YHOtherYesOrNoItemView(frame: .zero)
fzView4.updateUI(title: "4、您是否被媒体采访过,专访您的文章被发表在杂志上或网络上?", answer: dataModel.question?.media_interview ?? -1) fzView4.updateUI(title: "4、您是否被媒体采访过,专访您的文章被发表在杂志上或网络上?", answer: dataModel.question?.media_interview ?? -1)
fzView4.needCheckFlag = dataModel.needCheckFlag
fzView4.block = { answer in fzView4.block = { answer in
dataModel.question?.media_interview = answer dataModel.question?.media_interview = answer
} }
......
...@@ -13,7 +13,7 @@ class YHOtherInfoSessionView: UIView { ...@@ -13,7 +13,7 @@ class YHOtherInfoSessionView: UIView {
typealias Block = (Int) -> () typealias Block = (Int) -> ()
var block: Block? var block: Block?
//0-默认只有title 1-带删除按钮 2-有subNameLabel 3-带默认图标 //0-默认只有title 1-带删除按钮 2-有subNameLabel 3-带默认图标
var type : Int = 0 { var type : Int = 0 {
didSet { didSet {
......
...@@ -26,22 +26,42 @@ class YHOtherResidenceFillView: UIView { ...@@ -26,22 +26,42 @@ class YHOtherResidenceFillView: UIView {
} }
} }
let nationView : YHOtherSelecteItemView = YHOtherSelecteItemView() let nationView : YHOtherSelecteItemView = YHOtherSelecteItemView()
let startView : YHOtherSelecteItemView = YHOtherSelecteItemView() let startView : YHOtherSelecteItemView = YHOtherSelecteItemView()
let endView : YHOtherSelecteItemView = YHOtherSelecteItemView() let endView : YHOtherSelecteItemView = YHOtherSelecteItemView()
override func layoutSubviews() {
super.layoutSubviews()
nationView.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
}
startView.snp.makeConstraints { make in
make.top.equalTo(nationView.snp.bottom)
make.left.right.equalToSuperview()
}
endView.snp.makeConstraints { make in
make.top.equalTo(startView.snp.bottom)
make.left.right.equalToSuperview()
make.bottom.equalToSuperview()
}
}
} }
extension YHOtherResidenceFillView { extension YHOtherResidenceFillView {
func setupUI() { func setupUI() {
//1.国家 //1.国家
let view = nationView let view = nationView
view.updateKeyName(name: "国家", keyValue: "") view.updateKeyName(name: "国家", keyValue: "")
view.type = 1
addSubview(view) addSubview(view)
view.snp.makeConstraints { make in view.snp.makeConstraints { make in
make.top.left.right.equalToSuperview() make.top.left.right.equalToSuperview()
make.height.equalTo(YHOtherSelecteItemView.getViewHBy(type: 1))
} }
let tap1 = UITapGestureRecognizer(target: self, action: #selector(tapCountry)) let tap1 = UITapGestureRecognizer(target: self, action: #selector(tapCountry))
...@@ -50,24 +70,26 @@ extension YHOtherResidenceFillView { ...@@ -50,24 +70,26 @@ extension YHOtherResidenceFillView {
//2.开始时间 //2.开始时间
let view2 = startView let view2 = startView
view2.type = 1
view2.updateKeyName(name: "开始时间", keyValue: "") view2.updateKeyName(name: "开始时间", keyValue: "")
addSubview(view2) addSubview(view2)
view2.snp.makeConstraints { make in view2.snp.makeConstraints { make in
make.top.equalTo(view.snp.bottom) make.top.equalTo(view.snp.bottom)
make.left.right.equalToSuperview() make.left.right.equalToSuperview()
make.height.equalTo(YHOtherSelecteItemView.getViewHBy(type: 1)) // make.height.equalTo(YHOtherSelecteItemView.getViewHBy(type: 1))
} }
let tap2 = UITapGestureRecognizer(target: self, action: #selector(tapStartDate)) let tap2 = UITapGestureRecognizer(target: self, action: #selector(tapStartDate))
view2.addGestureRecognizer(tap2) view2.addGestureRecognizer(tap2)
//3.结束时间 //3.结束时间
let view3 = endView let view3 = endView
view3.type = 1
view3.updateKeyName(name: "结束时间", keyValue: "") view3.updateKeyName(name: "结束时间", keyValue: "")
addSubview(view3) addSubview(view3)
view3.snp.makeConstraints { make in view3.snp.makeConstraints { make in
make.top.equalTo(view2.snp.bottom) make.top.equalTo(view2.snp.bottom)
make.left.right.equalToSuperview() make.left.right.equalToSuperview()
make.height.equalTo(YHOtherSelecteItemView.getViewHBy(type: 1)) // make.height.equalTo(YHOtherSelecteItemView.getViewHBy(type: 1))
make.bottom.equalToSuperview() make.bottom.equalToSuperview()
} }
...@@ -80,10 +102,19 @@ extension YHOtherResidenceFillView { ...@@ -80,10 +102,19 @@ extension YHOtherResidenceFillView {
func updateUI() { func updateUI() {
guard let dataModel = dataModel else { return } guard let dataModel = dataModel else { return }
nationView.updateKeyName(name: "国家", keyValue: dataModel.country) nationView.updateKeyName(name: "国家", keyValue: dataModel.country)
nationView.needCheckFlag = dataModel.needCheckFlag
startView.updateKeyName(name: "开始时间", keyValue: dataModel.start_time) startView.updateKeyName(name: "开始时间", keyValue: dataModel.start_time)
startView.needCheckFlag = dataModel.needCheckFlag
endView.updateKeyName(name: "结束时间", keyValue: dataModel.end_time) endView.updateKeyName(name: "结束时间", keyValue: dataModel.end_time)
endView.needCheckFlag = dataModel.needCheckFlag
layoutIfNeeded()
} }
} }
extension YHOtherResidenceFillView { extension YHOtherResidenceFillView {
...@@ -93,6 +124,8 @@ extension YHOtherResidenceFillView { ...@@ -93,6 +124,8 @@ extension YHOtherResidenceFillView {
printLog(country) printLog(country)
self.nationView.updateKeyName(name: "国家", keyValue: country) self.nationView.updateKeyName(name: "国家", keyValue: country)
self.dataModel?.country = country self.dataModel?.country = country
self.layoutIfNeeded()
} }
self.parentViewController?.navigationController?.pushViewController(vc) self.parentViewController?.navigationController?.pushViewController(vc)
} }
...@@ -104,6 +137,7 @@ extension YHOtherResidenceFillView { ...@@ -104,6 +137,7 @@ extension YHOtherResidenceFillView {
self.startView.updateKeyName(name: "开始时间", keyValue: date) self.startView.updateKeyName(name: "开始时间", keyValue: date)
self.dataModel?.start_time = date self.dataModel?.start_time = date
self.layoutIfNeeded()
} }
} }
...@@ -112,6 +146,7 @@ extension YHOtherResidenceFillView { ...@@ -112,6 +146,7 @@ extension YHOtherResidenceFillView {
printLog(date) printLog(date)
self.endView.updateKeyName(name: "结束时间", keyValue: date) self.endView.updateKeyName(name: "结束时间", keyValue: date)
self.dataModel?.end_time = date self.dataModel?.end_time = date
self.layoutIfNeeded()
} }
} }
} }
...@@ -27,6 +27,12 @@ class YHOtherSelecteItemView: UIView { ...@@ -27,6 +27,12 @@ class YHOtherSelecteItemView: UIView {
} }
} }
var needCheckFlag : Bool = false {
didSet {
layoutIfNeeded()
}
}
//获取高度 //获取高度
static func getViewHBy(type : Int)->CGFloat { static func getViewHBy(type : Int)->CGFloat {
return type == 1 ? viewH : viewH2 return type == 1 ? viewH : viewH2
...@@ -66,6 +72,15 @@ class YHOtherSelecteItemView: UIView { ...@@ -66,6 +72,15 @@ class YHOtherSelecteItemView: UIView {
return view return view
}() }()
//提示lable
private lazy var noTextTipsLable: UILabel = {
let label = UILabel()
label.textColor = .failColor
label.font = UIFont.PFSC_R(ofSize: 12)
label.text = "请选择x"
return label
}()
var title:String? { var title:String? {
didSet { didSet {
if let question = title { if let question = title {
...@@ -90,42 +105,7 @@ class YHOtherSelecteItemView: UIView { ...@@ -90,42 +105,7 @@ class YHOtherSelecteItemView: UIView {
override func layoutSubviews() { override func layoutSubviews() {
super.layoutSubviews() super.layoutSubviews()
if type == 1 { layoutMyUI()
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 {
}
} }
} }
...@@ -135,10 +115,9 @@ extension YHOtherSelecteItemView { ...@@ -135,10 +115,9 @@ extension YHOtherSelecteItemView {
addSubview(bottomLine) addSubview(bottomLine)
addSubview(titleLabel) addSubview(titleLabel)
addSubview(subHoldView) addSubview(subHoldView)
addSubview(noTextTipsLable)
title = "开始时间" title = "开始时间"
let rightIcon = UIImageView() let rightIcon = UIImageView()
rightIcon.image = UIImage(named: "form_right_arrow") rightIcon.image = UIImage(named: "form_right_arrow")
rightIcon.contentMode = .scaleAspectFill rightIcon.contentMode = .scaleAspectFill
...@@ -159,7 +138,164 @@ extension YHOtherSelecteItemView { ...@@ -159,7 +138,164 @@ extension YHOtherSelecteItemView {
extension YHOtherSelecteItemView { extension YHOtherSelecteItemView {
func updateKeyName(name : String, keyValue : String) { func updateKeyName(name : String, keyValue : String) {
if type == 1 {
noTextTipsLable.text = "请选择" + name
} else {
noTextTipsLable.text = "请选择"
}
title = name title = name
textField.text = keyValue textField.text = keyValue
layoutMyUI()
}
func layoutMyUI() {
titleLabel.snp.removeConstraints()
subHoldView.snp.removeConstraints()
bottomLine.snp.removeConstraints()
noTextTipsLable.snp.removeConstraints()
if type == 1 {
if needCheckFlag == true {
titleLabel.snp.remakeConstraints { make in
make.top.equalToSuperview().offset(kMargin)
make.left.equalToSuperview()
make.width.equalTo(80)
make.height.equalTo(20)
}
subHoldView.snp.remakeConstraints { make in
make.top.equalTo(titleLabel.snp.top)
make.bottom.equalTo(titleLabel.snp.bottom)
make.right.equalToSuperview()
make.left.equalTo(titleLabel.snp.right).offset(40)
}
if textField.isEmpty == true {
noTextTipsLable.isHidden = false
noTextTipsLable.snp.remakeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom).offset(6)
make.height.equalTo(20)
make.left.equalTo(subHoldView.snp.left)
make.right.equalTo(subHoldView.snp.right)
}
bottomLine.snp.remakeConstraints { make in
make.top.equalTo(noTextTipsLable.snp.bottom).offset(6)
make.left.right.equalToSuperview()
make.height.equalTo(0.5)
make.bottom.equalToSuperview()
}
}
else {
noTextTipsLable.isHidden = true
bottomLine.snp.remakeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom).offset(kMargin)
make.bottom.left.right.equalToSuperview()
make.height.equalTo(0.5)
}
}
} else {
noTextTipsLable.isHidden = true
titleLabel.snp.remakeConstraints { make in
make.top.equalToSuperview().offset(kMargin)
make.left.equalToSuperview()
make.width.equalTo(80)
make.height.equalTo(20)
}
subHoldView.snp.remakeConstraints { make in
make.top.equalTo(titleLabel.snp.top)
make.bottom.equalTo(titleLabel.snp.bottom)
make.right.equalToSuperview()
make.left.equalTo(titleLabel.snp.right).offset(40)
}
bottomLine.snp.remakeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom).offset(kMargin)
make.bottom.left.right.equalToSuperview()
make.height.equalTo(0.5)
}
}
} else if type == 2 {
if needCheckFlag == true {
titleLabel.snp.remakeConstraints { make in
make.top.equalToSuperview().offset(kMargin)
make.left.right.equalToSuperview()
make.height.equalTo(20)
}
subHoldView.snp.remakeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom).offset(kMargin)
make.height.equalTo(20)
make.right.equalToSuperview()
make.left.equalToSuperview()
}
if textField.isEmpty == true {
noTextTipsLable.isHidden = false
noTextTipsLable.snp.remakeConstraints { make in
make.top.equalTo(subHoldView.snp.bottom).offset(6)
make.height.equalTo(20)
make.left.equalTo(subHoldView.snp.left)
make.right.equalTo(subHoldView.snp.right)
}
bottomLine.snp.remakeConstraints { make in
make.top.equalTo(noTextTipsLable.snp.bottom).offset(6)
make.bottom.left.right.equalToSuperview()
make.height.equalTo(0.5)
}
}
else {
noTextTipsLable.isHidden = true
bottomLine.snp.remakeConstraints { make in
make.top.equalTo(subHoldView.snp.bottom).offset(kMargin)
make.bottom.left.right.equalToSuperview()
make.height.equalTo(0.5)
}
}
} else {
noTextTipsLable.isHidden = true
titleLabel.snp.remakeConstraints { make in
make.top.equalToSuperview().offset(kMargin)
make.left.right.equalToSuperview()
make.height.equalTo(20)
}
subHoldView.snp.remakeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom).offset(kMargin)
make.height.equalTo(20)
make.right.equalToSuperview()
make.left.equalToSuperview()
}
bottomLine.snp.remakeConstraints { make in
make.top.equalTo(subHoldView.snp.bottom).offset(kMargin)
make.bottom.left.right.equalToSuperview()
make.height.equalTo(0.5)
}
}
} else {
printLog("error: 未处理的类型")
}
} }
} }
...@@ -135,9 +135,6 @@ private extension YHOtherTextViewItemView { ...@@ -135,9 +135,6 @@ private extension YHOtherTextViewItemView {
make.left.equalTo(16) make.left.equalTo(16)
make.right.equalTo(-12) make.right.equalTo(-12)
} }
// tipsLabel.text = kTipsString
addSubview(bottomLine) addSubview(bottomLine)
bottomLine.snp.makeConstraints { make in bottomLine.snp.makeConstraints { make in
...@@ -157,6 +154,16 @@ extension YHOtherTextViewItemView : UITextFieldDelegate { ...@@ -157,6 +154,16 @@ extension YHOtherTextViewItemView : UITextFieldDelegate {
} }
self.block?(textView.text) self.block?(textView.text)
} }
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
if !text.isEmpty {
if textView.text.count > 999 {
return false
}
}
return true
}
} }
extension YHOtherTextViewItemView { extension YHOtherTextViewItemView {
......
...@@ -99,6 +99,26 @@ class YHOtherYesOrNoItemView: UIView, UITextViewDelegate { ...@@ -99,6 +99,26 @@ class YHOtherYesOrNoItemView: UIView, UITextViewDelegate {
} }
} }
private var lastSelectedBtn : UIButton? private var lastSelectedBtn : UIButton?
var needCheckFlag : Bool = false {
didSet {
layoutMyUI()
}
}
//提示lable
private lazy var noTextTipsLable: UILabel = {
let label = UILabel()
label.textColor = .failColor
label.font = UIFont.PFSC_R(ofSize: 12)
label.text = "请选择"
label.isHidden = true
return label
}()
} }
...@@ -109,6 +129,7 @@ private extension YHOtherYesOrNoItemView { ...@@ -109,6 +129,7 @@ private extension YHOtherYesOrNoItemView {
addSubview(titleLabel) addSubview(titleLabel)
addSubview(answer2Btn) addSubview(answer2Btn)
addSubview(answer1Btn) addSubview(answer1Btn)
addSubview(noTextTipsLable)
titleLabel.snp.makeConstraints { make in titleLabel.snp.makeConstraints { make in
make.top.equalTo(kMargin) make.top.equalTo(kMargin)
...@@ -134,6 +155,9 @@ private extension YHOtherYesOrNoItemView { ...@@ -134,6 +155,9 @@ private extension YHOtherYesOrNoItemView {
make.height.equalTo(0.5) make.height.equalTo(0.5)
make.bottom.equalToSuperview() make.bottom.equalToSuperview()
} }
layoutMyUI()
} }
@objc func didClickResponseBtn(btn: UIButton) { @objc func didClickResponseBtn(btn: UIButton) {
...@@ -156,7 +180,9 @@ private extension YHOtherYesOrNoItemView { ...@@ -156,7 +180,9 @@ private extension YHOtherYesOrNoItemView {
answer1Btn.isSelected = false answer1Btn.isSelected = false
updateAnswerButton(answer1Btn, false) updateAnswerButton(answer1Btn, false)
} }
self.block?(answer2Btn.isSelected == true ? 2 : 1) self.block?(answer2Btn.isSelected == true ? 1 : 2)
layoutMyUI()
} }
// 更新答案按钮选中状态 // 更新答案按钮选中状态
...@@ -176,5 +202,40 @@ extension YHOtherYesOrNoItemView { ...@@ -176,5 +202,40 @@ extension YHOtherYesOrNoItemView {
} else if answer == 1 { } else if answer == 1 {
didClickResponseBtn(btn: answer1Btn) didClickResponseBtn(btn: answer1Btn)
} }
layoutMyUI()
}
private func layoutMyUI() {
bottomLine.snp.removeConstraints()
if needCheckFlag == true {
if answer1Btn.isSelected == false && answer2Btn.isSelected == false {
noTextTipsLable.isHidden = false
noTextTipsLable.snp.removeConstraints()
noTextTipsLable.snp.remakeConstraints { make in
make.top.equalTo(answer1Btn.snp.bottom).offset(6)
make.left.right.equalToSuperview()
make.height.equalTo(20)
}
bottomLine.snp.makeConstraints { make in
make.top.equalTo(noTextTipsLable.snp.bottom).offset(6)
make.left.right.equalToSuperview()
make.height.equalTo(0.5)
make.bottom.equalToSuperview()
}
return
}
}
noTextTipsLable.isHidden = true
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()
}
} }
} }
...@@ -11,92 +11,39 @@ import UIKit ...@@ -11,92 +11,39 @@ import UIKit
*基本资料信息 预览 *基本资料信息 预览
*/ */
class YHPreviewBasiceInformationViewController: YHPreviewBaseViewController { class YHPreviewBasiceInformationViewController: YHPreviewBaseViewController {
var arrData : [YHPreviewInfoSessionModel] = [] private let previewVM : YHPreviewViewModel = YHPreviewViewModel()
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
setupUI() setupUI()
loadData()
} }
} }
private extension YHPreviewBasiceInformationViewController { private extension YHPreviewBasiceInformationViewController {
func installData() {
do {
//主申请人
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "1、是否曾在香港或其他地方因任何罪行或违法行为被被定罪:", answer: "是",remark: "这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。")
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "2、是否曾在香港或其他地方被拒入境/递解/遣送或要求离境?", answer: "否")
let tmp2 = YHPreviewQuestionAndAnswerModel(question: "3、是否曾被拒绝签发香港或其他地方的签证/进入许可?", answer: "否")
let tmp3 = YHPreviewQuestionAndAnswerModel(question: "4、是否曾触犯香港或任何地方的入境法例?", answer: "是",remark: "我是测试数据哈我是测试数据哈我是测试数据哈我是测试数据哈我是测试数据哈我是测试数据哈我是测试数据哈我是测试数据哈")
let tmp4 = YHPreviewQuestionAndAnswerModel(question: "5、是否曾经使用另一个姓名或身份申请香港入境签证/进入许可或进入香港?", answer: "否")
let arr = [tmp0,tmp1,tmp2,tmp3,tmp4]
let model1 = YHPreviewInfoSessionModel(cellType: .questionAndAnswer, cellTitle: "主申请人", cellData0: arr)
arrData.append(model1)
}
do {
//配偶
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "1、是否曾被拒绝入境/递解/遣送或要求离开香港?", answer: "是",remark: "这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。")
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "2、是否曾被拒绝签发签证/进入许可以入境香港?", answer: "否")
let arr = [tmp0,tmp1]
let model1 = YHPreviewInfoSessionModel(cellType: .questionAndAnswer, cellTitle: "配偶", cellData0: arr)
arrData.append(model1)
}
do {
//子女-1
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "1、是否曾被拒绝入境/递解/遣送或要求离开香港?", answer: "是",remark: "这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。")
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "2、是否曾被拒绝签发签证/进入许可以入境香港?", answer: "否")
let arr = [tmp0,tmp1]
let model1 = YHPreviewInfoSessionModel(cellType: .questionAndAnswer, cellTitle: "子女-1", cellData0: arr)
arrData.append(model1)
}
do {
//子女-2
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "1、是否曾被拒绝入境/递解/遣送或要求离开香港?", answer: "是",remark: "这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。这里是详细的犯罪记录或违法行为说明,这里是详细的犯罪记录或违法行为说明。")
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "2、是否曾被拒绝签发签证/进入许可以入境香港?", answer: "否")
let arr = [tmp0,tmp1]
let model1 = YHPreviewInfoSessionModel(cellType: .questionAndAnswer, cellTitle: "子女-2", cellData0: arr)
arrData.append(model1)
}
do {
//家庭背景
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "1、至少一名直系家庭成员(已婚配偶、父母、兄弟姐妹、子女)是现居于香港的香港永久性居民", answer: "不满足")
let arr = [tmp0]
let model1 = YHPreviewInfoSessionModel(cellType: .questionAndAnswer, cellTitle: "家庭背景", cellData0: arr)
arrData.append(model1)
}
do {
//家庭背景2
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "1、至少一名直系家庭成员(已婚配偶、父母、兄弟姐妹、子女)是现居于香港的香港永久性居民", answer: "满足",remark: "张三、李四、王五")
let arr = [tmp0]
let model1 = YHPreviewInfoSessionModel(cellType: .questionAndAnswer, cellTitle: "家庭背景2-测试满足的情况", cellData0: arr)
arrData.append(model1)
}
}
func setupUI() { func setupUI() {
installData()
self.homeTableView.register(YHPreviewInfoCell.self,forCellReuseIdentifier: YHPreviewInfoCell.cellReuseIdentifier) self.homeTableView.register(YHPreviewInfoCell.self,forCellReuseIdentifier: YHPreviewInfoCell.cellReuseIdentifier)
self.homeTableView.reloadData() self.homeTableView.reloadData()
} }
func loadData() {
if let orderID = UserDefaults.standard.value(forKey: "orderIdForPreview") {
previewVM.getPreviewForBasicInfo(params: ["order_id" : orderID]) { success, error in
if success == true {
} else {
}
self.homeTableView.reloadData()
}
} else {
printLog("error : orderID 为空")
}
}
} }
...@@ -104,13 +51,13 @@ private extension YHPreviewBasiceInformationViewController { ...@@ -104,13 +51,13 @@ private extension YHPreviewBasiceInformationViewController {
// MARK: - UITableViewDelegate 和 UITableViewDataSource // MARK: - UITableViewDelegate 和 UITableViewDataSource
extension YHPreviewBasiceInformationViewController { extension YHPreviewBasiceInformationViewController {
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrData.count return previewVM.arrDataForBasicInfo.count
} }
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHPreviewInfoCell.self) let cell = tableView.dequeueReusableCell(withClass: YHPreviewInfoCell.self)
cell.selectionStyle = .none cell.selectionStyle = .none
cell.model = arrData[indexPath.row] cell.model = previewVM.arrDataForBasicInfo[indexPath.row]
return cell return cell
} }
} }
...@@ -11,96 +11,35 @@ import UIKit ...@@ -11,96 +11,35 @@ import UIKit
*主申请人信息 预览 *主申请人信息 预览
*/ */
class YHPreviewMainApplicantInfoViewController: YHPreviewBaseViewController { class YHPreviewMainApplicantInfoViewController: YHPreviewBaseViewController {
var arrData : [YHPreviewInfoSessionModel] = [] private let previewVM : YHPreviewViewModel = YHPreviewViewModel()
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
setupUI() setupUI()
loadData()
} }
} }
private extension YHPreviewMainApplicantInfoViewController { private extension YHPreviewMainApplicantInfoViewController {
func installData() {
do {
//国家信息
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "国家/国籍:", answer: "中国-China")
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "港澳通行证:", answer: "未办理")
let arr = [tmp0,tmp1]
let model1 = YHPreviewInfoSessionModel(cellType: .countryInfoType, cellTitle: "国籍信息", cellData0: arr)
arrData.append(model1)
}
do {
//基本信息
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "主申请人:", answer: "DavidHuang")
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "曾用名:", answer: "--")
let tmp2 = YHPreviewQuestionAndAnswerModel(question: "婚前姓氏:", answer: "--")
let tmp3 = YHPreviewQuestionAndAnswerModel(question: "出生日期:", answer: "1990年8月18日")
let tmp4 = YHPreviewQuestionAndAnswerModel(question: "出生城市:", answer: "国内 吉林省/吉林市")
let tmp5 = YHPreviewQuestionAndAnswerModel(question: "性别:", answer: "男")
let tmp6 = YHPreviewQuestionAndAnswerModel(question: "婚姻状况:", answer: "已婚")
let tmp7 = YHPreviewQuestionAndAnswerModel(question: "手机号:", answer: "13572984488")
let tmp8 = YHPreviewQuestionAndAnswerModel(question: "邮箱:", answer: "13572984488@nn.com")
let tmp9 = YHPreviewQuestionAndAnswerModel(question: "现居住地址:", answer: "现居住地址:现居住地址:现居住地址:现居住地址:现居住地址:现居住地址:")
let tmp10 = YHPreviewQuestionAndAnswerModel(question: "详细地址:", answer: "锐度公园世家北区10-1-701锐度公园世家北区10-1-701")
let tmp11 = YHPreviewQuestionAndAnswerModel(question: "是否办理过香港身份证:", answer: "是")
let tmp12 = YHPreviewQuestionAndAnswerModel(question: "香港身份证:", answer: "否")
let arr = [tmp0,tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7,tmp8,tmp9,tmp10,tmp11,tmp12]
let model2 = YHPreviewInfoSessionModel(cellType: .countryInfoType, cellTitle: "基本信息", cellData0: arr)
arrData.append(model2)
}
do {
//证件信息
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "中国身份证号码:", answer: "2203381990287633390")
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "签发地:", answer: "北京市分局")
let tmp2 = YHPreviewQuestionAndAnswerModel(question: "签发日期:", answer: "2018-07-17")
let tmp3 = YHPreviewQuestionAndAnswerModel(question: "届满日期:", answer: "2028-07-31")
let model0 = YHPersonInfoCellModel1(cellTitle: "中国身份证", cellData: [tmp0,tmp1,tmp2,tmp3])
let tmp4 = YHPreviewQuestionAndAnswerModel(question: "旅行社证件号码:", answer: "c2345639")
let tmp5 = YHPreviewQuestionAndAnswerModel(question: "签发地:", answer: "北京市分局")
let tmp6 = YHPreviewQuestionAndAnswerModel(question: "签发日期:", answer: "2018-07-17")
let tmp7 = YHPreviewQuestionAndAnswerModel(question: "届满日期:", answer: "2028-07-31")
let model1 = YHPersonInfoCellModel1(cellTitle: "港澳通行证", cellData: [tmp4,tmp5,tmp6,tmp7])
let tmp8 = YHPreviewQuestionAndAnswerModel(question: "证件类别:", answer: "护照")
let tmp9 = YHPreviewQuestionAndAnswerModel(question: "证件号码:", answer: "p2345639")
let tmp10 = YHPreviewQuestionAndAnswerModel(question: "签发地:", answer: "北京市分局")
let tmp11 = YHPreviewQuestionAndAnswerModel(question: "签发日期:", answer: "2028-07-31")
let tmp12 = YHPreviewQuestionAndAnswerModel(question: "届满日期:", answer: "2028-07-31")
let model2 = YHPersonInfoCellModel1(cellTitle: "护照及其他旅行证件", cellData: [tmp8,tmp9,tmp10,tmp11,tmp12])
let arr = [model0,model1,model2]
let model3 = YHPreviewInfoSessionModel(cellType: .idCardInfoType, cellTitle: "证件信息", cellData1: arr)
arrData.append(model3)
}
do {
//证件照片
let model1 = YHPersonInfoCellModel2(cellTitle: "中国身份证",frontUrl: "", backUrl: "", idType: 1)
let model2 = YHPersonInfoCellModel2(cellTitle: "港澳通行证",frontUrl: "", backUrl: "", idType: 2)
let arr = [model1,model2]
let model4 = YHPreviewInfoSessionModel(cellType: .idPictureType, cellTitle: "证件照片", cellData2: arr)
arrData.append(model4)
}
}
func setupUI() { func setupUI() {
installData()
self.homeTableView.register(YHPreviewInfoCell.self,forCellReuseIdentifier: YHPreviewInfoCell.cellReuseIdentifier) self.homeTableView.register(YHPreviewInfoCell.self,forCellReuseIdentifier: YHPreviewInfoCell.cellReuseIdentifier)
self.homeTableView.reloadData() self.homeTableView.reloadData()
} }
func loadData() {
if let orderID = UserDefaults.standard.value(forKey: "orderIdForPreview") {
previewVM.getPreviewForMainApplicationInfo(params: ["order_id" : orderID]) { success, error in
if success == true {
} else {
}
self.homeTableView.reloadData()
}
} else {
printLog("error : orderID 为空")
}
}
} }
...@@ -108,13 +47,13 @@ private extension YHPreviewMainApplicantInfoViewController { ...@@ -108,13 +47,13 @@ private extension YHPreviewMainApplicantInfoViewController {
// MARK: - UITableViewDelegate 和 UITableViewDataSource // MARK: - UITableViewDelegate 和 UITableViewDataSource
extension YHPreviewMainApplicantInfoViewController { extension YHPreviewMainApplicantInfoViewController {
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrData.count return previewVM.arrDataForMainApplicationInfo.count
} }
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHPreviewInfoCell.self) let cell = tableView.dequeueReusableCell(withClass: YHPreviewInfoCell.self)
cell.selectionStyle = .none cell.selectionStyle = .none
cell.model = arrData[indexPath.row] cell.model = previewVM.arrDataForMainApplicationInfo[indexPath.row]
return cell return cell
} }
} }
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