Commit f8dece54 authored by Steven杜宇's avatar Steven杜宇

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

parents 82f94367 180a561f
......@@ -157,6 +157,7 @@
A5234E3E2B7235F000A33433 /* YHOtherInfoFillViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5234E3D2B7235F000A33433 /* YHOtherInfoFillViewController.swift */; };
A53026902B4E6F2700F35102 /* YHHomeCustomCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A530268F2B4E6F2700F35102 /* YHHomeCustomCell.swift */; };
A554A5002B95FB9100EA5973 /* YHMainInfoPreviewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A554A4FF2B95FB9100EA5973 /* YHMainInfoPreviewModel.swift */; };
A554A5022B96B9BC00EA5973 /* YHAcademicPreviewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A554A5012B96B9BC00EA5973 /* YHAcademicPreviewModel.swift */; };
A5551FFE2B4C26CE00510980 /* YHBaseViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5551FFD2B4C26CE00510980 /* YHBaseViewModel.swift */; };
A5573ED22B317BFF00D98EC0 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5573ED12B317BFF00D98EC0 /* AppDelegate.swift */; };
A5573EDB2B317C0000D98EC0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A5573EDA2B317C0000D98EC0 /* Assets.xcassets */; };
......@@ -462,6 +463,7 @@
A5234E3D2B7235F000A33433 /* YHOtherInfoFillViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHOtherInfoFillViewController.swift; sourceTree = "<group>"; };
A530268F2B4E6F2700F35102 /* YHHomeCustomCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeCustomCell.swift; sourceTree = "<group>"; };
A554A4FF2B95FB9100EA5973 /* YHMainInfoPreviewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMainInfoPreviewModel.swift; sourceTree = "<group>"; };
A554A5012B96B9BC00EA5973 /* YHAcademicPreviewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHAcademicPreviewModel.swift; sourceTree = "<group>"; };
A5551FFD2B4C26CE00510980 /* YHBaseViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHBaseViewModel.swift; sourceTree = "<group>"; };
A5573ECE2B317BFF00D98EC0 /* galaxy.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = galaxy.app; sourceTree = BUILT_PRODUCTS_DIR; };
A5573ED12B317BFF00D98EC0 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
......@@ -1050,6 +1052,7 @@
A5191F612B89E748001069F7 /* YHPreviewQuestionAndAnswerModel.swift */,
A5B4A5842B9455F7003EFF8F /* YHPreviewForOtherInfoModel.swift */,
A554A4FF2B95FB9100EA5973 /* YHMainInfoPreviewModel.swift */,
A554A5012B96B9BC00EA5973 /* YHAcademicPreviewModel.swift */,
);
path = M;
sourceTree = "<group>";
......@@ -1781,6 +1784,7 @@
0468D4532B6782BE00CFB916 /* YHCardExampleView.swift in Sources */,
044CC62B2B876A230083FF76 /* YHSheetPickerView.swift in Sources */,
A596C3A12B84D9100067BBB8 /* YHOtherTextViewItemView.swift in Sources */,
A554A5022B96B9BC00EA5973 /* YHAcademicPreviewModel.swift in Sources */,
04010B952B6A1DE90093F3BB /* YHSaveAndSubmitView.swift in Sources */,
A5ACE9362B4564F7002C94D2 /* YHNetworkStatusManager.swift in Sources */,
A5ACE92C2B4564F7002C94D2 /* YHLoginStyleButton.swift in Sources */,
......
......@@ -11,118 +11,46 @@ import UIKit
*学历/专业资格 预览
*/
class YHPreviewAcademicAndProfessionalQualificationViewController: YHPreviewBaseViewController {
var arrData : [YHPreviewInfoSessionModel] = []
private let previewVM : YHPreviewViewModel = YHPreviewViewModel()
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
loadData()
}
}
private extension YHPreviewAcademicAndProfessionalQualificationViewController {
func installData() {
do {
//主申请人学历1
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "主申请人学历:", answer: "主申请人学历主申请人学历")
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: "上课地点上课地点")
let arr = [tmp0,tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7]
let model2 = YHPreviewInfoSessionModel(cellType: .countryInfoType, cellTitle: "主申请人学历1", cellData0: arr)
arrData.append(model2)
}
do {
//主申请人学历2
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "主申请人学历:", answer: "主申请人学历主申请人学历")
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: "上课地点上课地点")
let arr = [tmp0,tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7]
let model2 = YHPreviewInfoSessionModel(cellType: .countryInfoType, cellTitle: "主申请人学历2", cellData0: arr)
arrData.append(model2)
}
do {
//主申请人专业资格及会员资格1
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "资格证书名称:", answer: "资格证书名称")
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "颁授机构全称:", answer: "颁授机构全称:")
let tmp2 = YHPreviewQuestionAndAnswerModel(question: "颁授年份:", answer: "颁授年份:")
let tmp3 = YHPreviewQuestionAndAnswerModel(question: "颁授城市:", answer: "颁授城市:颁授城市:")
let arr = [tmp0,tmp1,tmp2,tmp3]
let model2 = YHPreviewInfoSessionModel(cellType: .countryInfoType, cellTitle: "主申请人专业资格及会员资格1", cellData0: arr)
arrData.append(model2)
}
do {
//主申请人专业资格及会员资格2
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "资格证书名称:", answer: "资格证书名称")
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "颁授机构全称:", answer: "颁授机构全称:")
let tmp2 = YHPreviewQuestionAndAnswerModel(question: "颁授年份:", answer: "颁授年份:")
let tmp3 = YHPreviewQuestionAndAnswerModel(question: "颁授城市:", answer: "颁授城市:颁授城市:")
let arr = [tmp0,tmp1,tmp2,tmp3]
let model2 = YHPreviewInfoSessionModel(cellType: .countryInfoType, cellTitle: "主申请人专业资格及会员资格2", cellData0: arr)
arrData.append(model2)
func loadData() {
if let orderID = UserDefaults.standard.value(forKey: "orderIdForPreview") {
let tmp = 133967 //for test hjl todo
previewVM.getPreviewForAcademicInfo(params: ["order_id" : tmp]) { success, error in
if success == true {
} else {
}
self.homeTableView.reloadData()
}
} else {
printLog("error : orderID 为空")
}
do {
//主申请人
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "1、您的所有学历及资格证书的姓名及出生日期,是否与身份证完全一致?(例如:身份证上是【张四】,学位证上是【张三】,则为不同", answer: "是")
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "2、您配偶的大学毕业证和学位证上的姓名及出生日期,是否与身份证完全一致?", answer: "否")
let arr = [tmp0,tmp1]
let model1 = YHPreviewInfoSessionModel(cellType: .questionAndAnswer, cellTitle: "学历证书姓名及出生日期正确性", cellData0: arr)
arrData.append(model1)
}
}
func setupUI() {
installData()
self.homeTableView.register(YHPreviewInfoCell.self,forCellReuseIdentifier: YHPreviewInfoCell.cellReuseIdentifier)
self.homeTableView.reloadData()
}
}
// MARK: - UITableViewDelegate 和 UITableViewDataSource
extension YHPreviewAcademicAndProfessionalQualificationViewController {
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrData.count
return previewVM.arrDataForAcademicInfo.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHPreviewInfoCell.self)
cell.selectionStyle = .none
cell.model = arrData[indexPath.row]
cell.model = previewVM.arrDataForAcademicInfo[indexPath.row]
return cell
}
}
......@@ -10,6 +10,8 @@ import UIKit
import GKNavigationBarSwift
class YHPreviewMainViewController: YHBaseViewController {
private let previewVM : YHPreviewViewModel = YHPreviewViewModel()
var orderId : Int?
var canScroll : Bool = true
......@@ -58,7 +60,7 @@ class YHPreviewMainViewController: YHBaseViewController {
//姓名
private lazy var nameLable : UILabel = {
let lable0 = UILabel(text: "DavidHuang")
let lable0 = UILabel(text: "")
lable0.textColor = UIColor.mainTextColor
lable0.font = UIFont.PFSC_M(ofSize: 19)
return lable0
......@@ -66,7 +68,7 @@ class YHPreviewMainViewController: YHBaseViewController {
//电话号码
private lazy var phoneLable : UILabel = {
let lable0 = UILabel(text: "15818743775")
let lable0 = UILabel(text: "")
lable0.textColor = UIColor.labelTextColor2
lable0.font = UIFont.PFSC_R(ofSize: 14)
return lable0
......@@ -90,7 +92,7 @@ class YHPreviewMainViewController: YHBaseViewController {
initView()
//2.网络请求
requestData()
loadData()
}
......@@ -117,18 +119,29 @@ extension YHPreviewMainViewController {
canScroll = true
}
private func requestData() {
// self.homeReqVM.getHomeConfig { flag, error in
// if flag == true {
// //1. 调用model 刷新界面
// YHHUD.flash(message: "数据已更新")
// } else {
// //2. 给出 错误提示
// if let error = error {
// YHHUD.flash(.error(message: error.errorMsg))
// }
// }
// }
func loadData() {
if let orderID = UserDefaults.standard.value(forKey: "orderIdForPreview") {
previewVM.getPreviewForMainApplicationInfo(params: ["order_id" : orderID]) { success, error in
if success == true {
var title = ""
if let tmp = self.previewVM.mainApplicationInfoPreviewModel?.username,tmp.isEmpty == false {
title = tmp + "的个人信息表"
} else {
title = "未知 "
}
self.nameLable.text = title
self.phoneLable.text = self.previewVM.mainApplicationInfoPreviewModel?.mobile ?? "-"
} else {
}
self.homeTableView.reloadData()
}
} else {
printLog("error : orderID 为空")
}
}
private func initView()->Void {
......
//
// YHAcademicPreviewModel.swift
// galaxy
//
// Created by davidhuangA on 2024/3/5.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
class YHAcademicPreviewModel: SmartCodable {
var edu_correct: Int = 0
var qla_correct: Int = 0
var edu_count: Int = 0
var qla_count: Int = 0
var is_married: Int = 0
var edu_list : [eduListModel]?
var qla_list : [qlaListModel]?
required init() {
}
}
class eduListModel: SmartCodable {
var id: Int = -1
var school_address_aboard: Int = -1
var college: String = ""
var type: String = ""
var admission_time: String = ""
var graduate_time: String = ""
var professional: String = ""
var background: String = ""
var degree_type: String = ""
var school_address: schoolAddressModel?
required init() {
}
}
class qlaListModel: SmartCodable {
var id: Int = -1
var qualification: String = ""
var college: String = ""
var promulgation: Int = -1
var college_address: schoolAddressModel?
var college_address_aboard: Int = -1
required init() {
}
}
class schoolAddressModel : SmartCodable {
var country: String = ""
var area: [String] = []
var foreign: String = ""
var details: String = ""
required init() {
}
}
......@@ -9,6 +9,10 @@
import UIKit
class YHPreviewViewModel: YHBaseViewModel {
//学历/专业资格
var academicInfoPreviewModel : YHAcademicPreviewModel?
var arrDataForAcademicInfo : [YHPreviewInfoSessionModel] = []
//家庭成员信息 预览
var familyInfoPreviewModel : YHFamilyMemberGroupInfo?
var arrDataForFamilyInfo : [YHPreviewInfoSessionModel] = [] //用于展示
......@@ -18,7 +22,7 @@ class YHPreviewViewModel: YHBaseViewModel {
var arrDataForBrother : [YHPreviewInfoSessionModel] = []//兄弟姐妹
//主申请人信息 预览 - 未完成
//主申请人信息 预览
var mainApplicationInfoPreviewModel : YHMainInfoPreviewModel?
var arrDataForMainApplicationInfo : [YHPreviewInfoSessionModel] = []
......@@ -32,6 +36,35 @@ class YHPreviewViewModel: YHBaseViewModel {
}
extension YHPreviewViewModel {
//获取学历/专业 预览数据
func getPreviewForAcademicInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Preview.previewAcademicAndProfessionalQualificationInfoApi
let _ = YHNetRequest.getRequest(url: strUrl, params:params) {[weak self] json, code in
guard let self = self else { return }
printLog("model 是 ==> \(json)")
if json.code == 200 {
let dic = json.data as? [AnyHashable : Any]
guard let resultModel = YHAcademicPreviewModel.deserialize(dict: dic) else {
let error = YHErrorModel(errorCode: YHErrorCode.dictParseError.rawValue, errorMsg: YHErrorCode.dictParseError.description())
callBackBlock(false,error)
return
}
academicInfoPreviewModel = resultModel
installDataForAcademicInfo()
callBackBlock(true,nil)
} else {
let error = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg)
callBackBlock(false,error)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
//获取家庭成员 预览数据
func getPreviewForFamilyInfo(params:[String:Any], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Preview.previewFamilyInfoApi
......@@ -133,11 +166,8 @@ extension YHPreviewViewModel {
callBackBlock(false,nil)
return
}
self.otherInfoPreviewModel = resultModel
installDataForOtherInfo()
//根据返回值 组装 真实的数据
callBackBlock(true,nil)
......@@ -153,6 +183,88 @@ extension YHPreviewViewModel {
}
private extension YHPreviewViewModel {
//组装 学历/专业资格 数据
func installDataForAcademicInfo() {
arrDataForAcademicInfo.removeAll()
guard let model0 = academicInfoPreviewModel else { return}
do {
if let arr = model0.edu_list {
for(index,model) in arr.enumerated() {
//主申请人学历
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "学校全称:", answer:model.college)
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "授课形式:", answer:model.type)
let tmp2 = YHPreviewQuestionAndAnswerModel(question: "入学年月:", answer:model.admission_time)
let tmp3 = YHPreviewQuestionAndAnswerModel(question: "毕业年月:", answer: model.graduate_time)
let tmp4 = YHPreviewQuestionAndAnswerModel(question: "专业:", answer: model.professional)
let tmp5 = YHPreviewQuestionAndAnswerModel(question: "学位:", answer: model.background)
let tmp6 = YHPreviewQuestionAndAnswerModel(question: "学位类型:", answer: model.degree_type)
var title = ""
if let item = model.school_address {
if item.country.contains("中国") {
title = "国内 "
if item.area.count > 1 {
title = title + item.area[0] + "/" + item.area[1]
}
} else {
title = "国外 " + item.country + item.foreign
}
} else {
title = "--"
}
let tmp7 = YHPreviewQuestionAndAnswerModel(question: "上课地点:", answer:title)
let arr = [tmp0,tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7]
let model2 = YHPreviewInfoSessionModel(cellType: .countryInfoType, cellTitle: "主申请人学历" + String(index + 1), cellData0: arr)
arrDataForAcademicInfo.append(model2)
}
}
}
do {
//主申请人专业资格及会员资格
if let arr = model0.qla_list {
for(index,model) in arr.enumerated() {
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "资格证书名称:",answer:model.qualification)
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "颁授机构全称:", answer:model.college)
let tmp2 = YHPreviewQuestionAndAnswerModel(question: "颁授年份:", answer:String(model.promulgation))
var title = ""
if let item = model.college_address {
if item.country.contains("中国") {
title = "国内 "
if item.area.count > 1 {
title = title + item.area[0] + "/" + item.area[1]
}
} else {
title = "国外 " + item.country + item.foreign
}
} else {
title = "--"
}
let tmp3 = YHPreviewQuestionAndAnswerModel(question: "颁授城市:", answer:title)
let arr = [tmp0,tmp1,tmp2,tmp3]
let model2 = YHPreviewInfoSessionModel(cellType: .countryInfoType, cellTitle: "主申请人专业资格及会员资格" + String(index + 1), cellData0: arr)
arrDataForAcademicInfo.append(model2)
}
}
}
do {
//主申请人
let title = model0.qla_correct == 1 ? "是" : "否"
let tmp0 = YHPreviewQuestionAndAnswerModel(question: "1、您的所有学历及资格证书的姓名及出生日期,是否与身份证完全一致?(例如:身份证上是【张四】,学位证上是【张三】,则为不同", answer: title)
let title2 = model0.edu_correct == 1 ? "是" : "否"
let tmp1 = YHPreviewQuestionAndAnswerModel(question: "2、您配偶的大学毕业证和学位证上的姓名及出生日期,是否与身份证完全一致?", answer: title2)
let arr = [tmp0,tmp1]
let model1 = YHPreviewInfoSessionModel(cellType: .questionAndAnswer, cellTitle: "学历证书姓名及出生日期正确性", cellData0: arr)
arrDataForAcademicInfo.append(model1)
}
}
//组装 主申请人预览 数据
func installDataForMainApplicationInfo() {
guard let model = mainApplicationInfoPreviewModel else { return }
......
......@@ -153,7 +153,6 @@ class YHAllApiName {
static let verifyCode = "user/verify-code"
}
//预览相关接口
struct Preview {
//其他信息
......@@ -164,5 +163,7 @@ class YHAllApiName {
static let previewMainApplicationInfoApi = "infoflow/order-information/get_information"
//家庭成员信息
static let previewFamilyInfoApi = "infoflow/information/family"
//学历/专业资格
static let previewAcademicAndProfessionalQualificationInfoApi = "infoflow/education/preview"
}
}
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