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

Merge commit '885a0bb5' into xiezhaolin

parents aac7bfef 885a0bb5
This diff is collapsed.
......@@ -78,7 +78,6 @@ class YHInformationPerfectListVC: YHBaseViewController {
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
loadData()
}
......@@ -90,10 +89,10 @@ class YHInformationPerfectListVC: YHBaseViewController {
extension YHInformationPerfectListVC {
func submitSweetNotify() {
let params = ["option":1,"orderId":orderId]
let params = ["option":1,"order_id":orderId]
serviceCenterMainReqVM.submitSweetNotifyOp(params: params as [String : Any]) { success, error in
if success == true {
self.hasSubmitFlag = true
YHInformationFillTipsAlertView.hideCheckView()
} else {
YHHUD.flash(message: error?.errorMsg ?? "发生错误,请重试")
}
......@@ -146,13 +145,20 @@ extension YHInformationPerfectListVC {
}
@objc func goInfoListVC() {
//个人信息表
let vc = YHPersonInformMainViewController()
@objc func goInfoListVC( ) {
//个人信息表预览
goInfoListVCOp()
}
private func goInfoListVCOp(index : Int = 0) {
let vc = YHPreviewMainViewController()
vc.orderId = orderId
vc.myDefaultIndex = index
navigationController?.pushViewController(vc)
}
@objc func clickSubmitBtn() {
......@@ -348,8 +354,11 @@ extension YHInformationPerfectListVC : UITableViewDelegate,UITableViewDataSource
tableView.deselectRow(at: indexPath, animated: true)
printLog("点击了 \(indexPath.section)section --- \(indexPath.row)row")
if self.serviceCenterMainReqVM.myInfoFillStep > 6 {
goInfoListVCOp(index:indexPath.row)
return
}
let model = serviceCenterMainReqVM.arrInfoFillStep[indexPath.row]
if indexPath.row == 0 {
//主申请人信息
......
......@@ -97,11 +97,20 @@ extension YHBasicInfoFillViewController {
private func saveData() {
submitAndSaveDataOp(isSaveFlag: true)
}
private func submitData() {
//提交
submitAndSaveDataOp(isSaveFlag: false)
}
private func submitAndSaveDataOp(isSaveFlag : Bool) {
//保存
let arr = basicInfoVM.arrBasicInfoSessionDataForEdit
var param : [String : Any] = ["order_id":orderId as Any,"save_type": "save"]
var param : [String : Any] = ["order_id":orderId as Any,"save_type": isSaveFlag ? "save" : "submit"]
for item in arr {
if item.sessionTitle == "主申请人" {
......@@ -197,18 +206,13 @@ extension YHBasicInfoFillViewController {
basicInfoVM.saveBasicInfo(params: param) { success, error in
if success == true {
YHHUD.flash(message: "保存成功")
YHHUD.flash(message: "操作成功")
} else {
let msg = error?.errorMsg ?? "保存失败"
let msg = error?.errorMsg ?? "操作失败"
YHHUD.flash(message: msg)
}
}
}
private func submitData() {
//提交
}
}
// MARK: - delegates
......
......@@ -95,12 +95,12 @@ class YHChildBasicInfoVC: YHBaseViewController, YHFamilyMemberProtol {
let item07 = YHFormDetailItem(type: .birthCity)
if child.isBirthOverSeas() {
item07.value = child.birthPlace?.foreign
item07.value = child.birthPlace.foreign
item07.placeHolder = "请输入".local
item07.tips = "请输入出生城市".local
} else {
item07.value = child.birthPlace?.area?.joined(separator: ",")
item07.value = child.birthPlace.area.joined(separator: ",")
item07.placeHolder = "请选择出生城市".local
item07.tips = "请选择出生城市".local
}
......@@ -270,19 +270,19 @@ extension YHChildBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
guard let self = self else { return }
if detailItem.type == .childName {
self.child?.subsetName = text
self.child?.subsetName = text ?? ""
} else if detailItem.type == .everName {
self.child?.usedName = text
self.child?.usedName = text ?? ""
} else if detailItem.type == .befourMarryFirstName {
self.child?.surname = text
self.child?.surname = text ?? ""
} else if detailItem.type == .birthCity {
self.child?.birthPlace?.foreign = text
self.child?.birthPlace.foreign = text ?? ""
} else if detailItem.type == .occupationName {
self.child?.occupationName = text
self.child?.occupationName = text ?? ""
} else if detailItem.type == .hkIdentityCardNumber {
self.child?.hkIdentityCard = text
......@@ -457,7 +457,7 @@ extension YHChildBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
[weak self] (string1, string2, string3, string4) in
guard let self = self else { return }
print("\(string1)\n\(string2)\n\(string3)\n\(string4)")
self.child?.birthPlace?.area = [string2, string3, string4]
self.child?.birthPlace.area = [string2, string3, string4]
self.loadBasicInfo()
if let delegate = delegate {
delegate.saveInfo?()
......
......@@ -83,37 +83,35 @@ class YHChildPrimaryInfoVC: YHBaseViewController, YHFamilyMemberProtol {
if !child.isLiveTother() { // 不同住 才需填写国家/地区
let item21 = YHFormDetailItem(type: .nationOrArea)
item21.value = child.address?.country
item21.value = child.address.country
item21.placeHolder = "请选择".local
arr2.append(item21)
// 国家/地区已填写 才显示现居住城市和详细地址两行
if let address = child.address {
if let country = address.country, !country.isEmpty {
if !child.address.country.isEmpty {
// 居住信息中选择中国才会显示现居住城市
let isLiveInChina = country.contains("中国".local)
if isLiveInChina {
let item22 = YHFormDetailItem(type: .liveCity)
if let area = address.area {
item22.value = area.joined(separator: "/")
}
item22.placeHolder = "请选择城市".local
arr2.append(item22)
}
let item23 = YHFormDetailItem(type: .detailAddress)
item23.value = address.details
item23.placeHolder = (isLiveInChina ? "请填写小区、楼栋、单元室等".local : "请填写国外居住地".local)
arr2.append(item23)
if !isLiveInChina {// 在国外
// 是否在海外居住满1年及以上
let item24 = YHFormDetailItem(type: .isLiveOverSeasMore1Year)
item24.value = String(child.isOverSeasOver1Year())
arr2.append(item24)
// 居住信息中选择中国才会显示现居住城市
let isLiveInChina = child.address.country.contains("中国".local)
if isLiveInChina {
let item22 = YHFormDetailItem(type: .liveCity)
if !child.address.area.isEmpty {
item22.value = child.address.area.joined(separator: "/")
}
item22.placeHolder = "请选择城市".local
arr2.append(item22)
}
let item23 = YHFormDetailItem(type: .detailAddress)
item23.value = child.address.details
item23.placeHolder = (isLiveInChina ? "请填写小区、楼栋、单元室等".local : "请填写国外居住地".local)
arr2.append(item23)
if !isLiveInChina {// 在国外
// 是否在海外居住满1年及以上
let item24 = YHFormDetailItem(type: .isLiveOverSeasMore1Year)
item24.value = String(child.isOverSeasOver1Year())
arr2.append(item24)
}
}
}
......@@ -254,9 +252,9 @@ extension YHChildPrimaryInfoVC : UITableViewDelegate, UITableViewDataSource {
} else if detailItem.type == .isLiveTother { // 是否与主申请人同住
self.child?.setLiveTother(option)
if option {
self.child?.address?.country = nil
self.child?.address?.details = nil
self.child?.address?.area = nil
self.child?.address.country = ""
self.child?.address.details = ""
self.child?.address.area = []
}
} else if detailItem.type == .isLiveOverSeasMore1Year { // 是否在海外居住满1年及以上
self.child?.setOverSearsOver1Year(option)
......@@ -289,7 +287,7 @@ extension YHChildPrimaryInfoVC : UITableViewDelegate, UITableViewDataSource {
[weak self] (text, isEditEnd) in
guard let self = self else { return }
if detailItem.type == .detailAddress {
self.child?.address?.details = text
self.child?.address.details = text ?? ""
}
if isEditEnd {
......@@ -384,7 +382,7 @@ extension YHChildPrimaryInfoVC : UITableViewDelegate, UITableViewDataSource {
self.child?.nationality = country
} else if title.type == .liveInfo {
self.child?.address?.country = country
self.child?.address.country = country
}
self.loadChildInfo()
......@@ -398,7 +396,7 @@ extension YHChildPrimaryInfoVC : UITableViewDelegate, UITableViewDataSource {
[weak self] (string1, string2, string3, string4) in
guard let self = self else { return }
print("\(string1)\n\(string2)\n\(string3)\n\(string4)")
self.child?.address?.area = [string2, string3, string4]
self.child?.address.area = [string2, string3, string4]
self.loadChildInfo()
}
self.present(vc, animated: true)
......@@ -450,13 +448,13 @@ extension YHChildPrimaryInfoVC {
if isEmptyString(child.nationality) {
return false
}
if isEmptyString(child.address?.country) {
if isEmptyString(child.address.country) {
return false
}
if isEmptyString(child.address?.details) {
if isEmptyString(child.address.details) {
return false
}
if child.isBirthOverSeas(), isEmptyArray(child.address?.area) {
if child.isBirthOverSeas(), isEmptyArray(child.address.area) {
return false
}
return true
......
......@@ -108,12 +108,12 @@ class YHSpouseBasicInfoVC: YHBaseViewController, YHFamilyMemberProtol {
let item05 = YHFormDetailItem(type: .birthCity)
if spouse.isBirthOverSeas() {
item05.value = spouse.birthPlace?.foreign
item05.value = spouse.birthPlace.foreign
item05.placeHolder = "请输入".local
item05.tips = "请输入出生城市".local
} else {
item05.value = spouse.birthPlace?.area?.joined(separator: ",")
item05.value = spouse.birthPlace.area.joined(separator: ",")
item05.placeHolder = "请选择".local
item05.tips = "请选择出生城市".local
......@@ -147,8 +147,8 @@ class YHSpouseBasicInfoVC: YHBaseViewController, YHFamilyMemberProtol {
var arr2:[YHFormItemProtocol] = [title2, item20]
if spouse.isHaveDegree() { // 选择了有学位
if let degreeArr = spouse.hasDegreeJson, !degreeArr.isEmpty {
for degreeInfo in degreeArr {
if !spouse.hasDegreeJson.isEmpty {
for degreeInfo in spouse.hasDegreeJson {
let item = YHFormDetailItem(type: .degreeDetailInfo)
arr2.append(item)
}
......@@ -215,12 +215,12 @@ class YHSpouseBasicInfoVC: YHBaseViewController, YHFamilyMemberProtol {
}
if spouse.isBirthOverSeas() {
if isEmptyString(spouse.birthPlace?.foreign) {
if isEmptyString(spouse.birthPlace.foreign) {
return false
}
} else {
if isEmptyArray(spouse.birthPlace?.area) {
if isEmptyArray(spouse.birthPlace.area) {
return false
}
}
......@@ -233,8 +233,8 @@ class YHSpouseBasicInfoVC: YHBaseViewController, YHFamilyMemberProtol {
}
if spouse.isHaveDegree() { // 选择了有学位
if let degreeArr = spouse.hasDegreeJson, !degreeArr.isEmpty {
for degreeInfo in degreeArr {
if !spouse.hasDegreeJson.isEmpty {
for degreeInfo in spouse.hasDegreeJson {
if isEmptyString(degreeInfo.degree) || isEmptyString(degreeInfo.address) {
return false
}
......@@ -348,7 +348,7 @@ extension YHSpouseBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
[weak self] in
guard let self = self else { return }
let newDegree = YHHasDegreeJson()
self.spouse?.hasDegreeJson?.append(newDegree)
self.spouse?.hasDegreeJson.append(newDegree)
self.loadBasicInfo()
}
return cell
......@@ -380,15 +380,15 @@ extension YHSpouseBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
[weak self] (text, isEditEnd) in
guard let self = self else { return }
if detailItem.type == .spouseName {
self.spouse?.subsetName = text
self.spouse?.subsetName = text ?? ""
} else if detailItem.type == .everName {
self.spouse?.usedName = text
self.spouse?.usedName = text ?? ""
} else if detailItem.type == .befourMarryFirstName {
self.spouse?.surname = text
self.spouse?.surname = text ?? ""
} else if detailItem.type == .birthCity {
self.spouse?.birthPlace?.foreign = text
self.spouse?.birthPlace.foreign = text ?? ""
} else if detailItem.type == .occupationName {
self.spouse?.occupationName = text
self.spouse?.occupationName = text ?? ""
} else if detailItem.type == .hkIdentityCardNumber {
self.spouse?.hkIdentityCard = text
}
......@@ -481,8 +481,8 @@ extension YHSpouseBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
// 前两行是 学历学位信息标题 和 是否拥有学位
cell.showDeleteBtn(indexPath.row > 2)
if let degree = degreeInfo.degree {
if let degreeIndex = Int(degree), let subType = YHPickerViewDegreeType(rawValue: degreeIndex) {
if !degreeInfo.degree.isEmpty {
if let degreeIndex = Int(degreeInfo.degree), let subType = YHPickerViewDegreeType(rawValue: degreeIndex) {
cell.degree = YHFormPickerViewSubType.degree(subType).title
} else {
cell.degree = ""
......@@ -490,8 +490,8 @@ extension YHSpouseBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
} else {
cell.degree = ""
}
if let address = degreeInfo.address {
if let addressIndex = Int(address), let subType = YHPickerViewDegreeLocationType(rawValue: addressIndex) {
if !degreeInfo.address.isEmpty {
if let addressIndex = Int(degreeInfo.address), let subType = YHPickerViewDegreeLocationType(rawValue: addressIndex) {
cell.degreePlace = YHFormPickerViewSubType.degreeLocation(subType).title
} else {
cell.degreePlace = ""
......@@ -516,7 +516,7 @@ extension YHSpouseBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
cell.deleteBlock = {
[weak self] in
guard let self = self else { return }
self.spouse?.hasDegreeJson?.remove(at: indexPath.row-2)
self.spouse?.hasDegreeJson.remove(at: indexPath.row-2)
self.loadBasicInfo()
}
}
......@@ -615,7 +615,7 @@ extension YHSpouseBasicInfoVC : UITableViewDelegate, UITableViewDataSource {
[weak self] (string1, string2, string3, string4) in
guard let self = self else { return }
print("\(string1)\n\(string2)\n\(string3)\n\(string4)")
self.spouse?.birthPlace?.area = [string2, string3, string4]
self.spouse?.birthPlace.area = [string2, string3, string4]
self.loadBasicInfo()
}
self.present(vc, animated: true)
......
......@@ -161,6 +161,7 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
guard let self = self else { return }
if let targetStep = getStepForArrayIndex(index) {
currentStep = targetStep
spouse.step = targetStep
}
print("index:\(index)")
}
......@@ -173,38 +174,51 @@ class YHSpouseInfoContainerVC: YHBaseViewController, YHSpouseInfoVCProtocol {
}
extension YHSpouseInfoContainerVC {
func saveInfo() {
func saveInfo(isSubmit:Bool, callBack:((Bool, String?)->Void)?) {
guard let spouse = spouse else { return }
guard let info = spouse.toDictionary() else { return }
let dict:[String: Any] = ["orderId":spouse.orderId,
"relation":spouse.relationType.rawValue,
let dict:[String: Any] = ["order_id":spouse.orderId,
"relation":spouse.relation,
"step":spouse.step,
"next":false,
"next":isSubmit,
"info":info]
self.familyRequest.addOrSaveFamilyMember(params:dict) { [weak self] success, error in
guard let self = self else { return }
if success {
if let callBack = callBack {
callBack(success, error?.errorMsg)
}
}
}
func saveInfo() {
saveInfo(isSubmit: false, callBack:nil)
}
func submit() {
if let targetVC = getCurrentStepViewController() {
if targetVC.nextStep() {
// 当前步骤已是最后一步
if let vc = stepVCs.last, vc.step == currentStep {
YHHUD.flash(message: "已经是最后一步!")
return
}
if let cur = getArrayIndexOfCurrentStep(), let item = stepVCs[safe:cur+1] {
currentStep = item.step
saveInfo(isSubmit: true) {
[weak self] success, tips in
guard let self = self else { return }
if success {
// 当前步骤已是最后一步
if let vc = stepVCs.last, vc.step == currentStep {
YHHUD.flash(message: "已经是最后一步!")
return
}
if let cur = getArrayIndexOfCurrentStep(), let item = stepVCs[safe:cur+1] {
currentStep = item.step
}
print("currentIndex:\(currentStep)")
}
}
print("currentIndex:\(currentStep)")
}
}
}
......
......@@ -79,40 +79,38 @@ class YHSpousePrimaryInfoVC: YHBaseViewController, YHFamilyMemberProtol {
if !spouse.isLiveTother() { // 不同住 才需填写国家/地区
let item21 = YHFormDetailItem(type: .nationOrArea)
item21.value = spouse.address?.country
item21.value = spouse.address.country
item21.placeHolder = "请选择".local
item21.tips = "请选择国家/地区".local
arr2.append(item21)
// 国家/地区已填写 才显示现居住城市和详细地址两行
if let address = spouse.address {
if let country = address.country, !country.isEmpty {
// 居住信息中选择中国才会显示现居住城市
let isLiveInChina = country.contains("中国".local)
if isLiveInChina {
let item22 = YHFormDetailItem(type: .liveCity)
if let area = address.area {
item22.value = area.joined(separator: "/")
}
item22.placeHolder = "请选择城市".local
item22.tips = "请请选择城市".local
arr2.append(item22)
}
let item23 = YHFormDetailItem(type: .detailAddress)
item23.value = address.details
item23.placeHolder = (isLiveInChina ? "请填写小区、楼栋、单元室等".local : "请填写国外居住地".local)
item23.tips = (isLiveInChina ? "请填写小区、楼栋、单元室等".local : "请填写国外居住地".local)
arr2.append(item23)
if !isLiveInChina {// 在国外
// 是否在海外居住满1年及以上
let item24 = YHFormDetailItem(type: .isLiveOverSeasMore1Year)
item24.value = String(spouse.isOverSeasOver1Year())
arr2.append(item24)
if !spouse.address.country.isEmpty {
// 居住信息中选择中国才会显示现居住城市
let isLiveInChina = spouse.address.country.contains("中国".local)
if isLiveInChina {
let item22 = YHFormDetailItem(type: .liveCity)
if !spouse.address.area.isEmpty {
item22.value = spouse.address.area.joined(separator: "/")
}
item22.placeHolder = "请选择城市".local
item22.tips = "请请选择城市".local
arr2.append(item22)
}
let item23 = YHFormDetailItem(type: .detailAddress)
item23.value = spouse.address.details
item23.placeHolder = (isLiveInChina ? "请填写小区、楼栋、单元室等".local : "请填写国外居住地".local)
item23.tips = (isLiveInChina ? "请填写小区、楼栋、单元室等".local : "请填写国外居住地".local)
arr2.append(item23)
if !isLiveInChina {// 在国外
// 是否在海外居住满1年及以上
let item24 = YHFormDetailItem(type: .isLiveOverSeasMore1Year)
item24.value = String(spouse.isOverSeasOver1Year())
arr2.append(item24)
}
}
}
......@@ -210,9 +208,9 @@ extension YHSpousePrimaryInfoVC : UITableViewDelegate, UITableViewDataSource {
} else if detailItem.type == .isLiveTother { // 是否与主申请人同住
self.spouse?.setLiveTother(option)
if option {
self.spouse?.address?.country = nil
self.spouse?.address?.details = nil
self.spouse?.address?.area = nil
self.spouse?.address.country = ""
self.spouse?.address.details = ""
self.spouse?.address.area = []
}
self.loadSponseInfo()
......@@ -248,7 +246,7 @@ extension YHSpousePrimaryInfoVC : UITableViewDelegate, UITableViewDataSource {
cell.textChange = {
[weak self] (text, isEditEnd) in
guard let self = self else { return }
self.spouse?.address?.details = text
self.spouse?.address.details = text ?? ""
if isEditEnd {
self.loadSponseInfo()
if let delegate = delegate {
......@@ -338,7 +336,7 @@ extension YHSpousePrimaryInfoVC : UITableViewDelegate, UITableViewDataSource {
self.spouse?.nationality = country
} else if title.type == .liveInfo {
self.spouse?.address?.country = country
self.spouse?.address.country = country
}
self.loadSponseInfo()
......@@ -352,7 +350,7 @@ extension YHSpousePrimaryInfoVC : UITableViewDelegate, UITableViewDataSource {
[weak self] (string1, string2, string3, string4) in
guard let self = self else { return }
print("\(string1)\n\(string2)\n\(string3)\n\(string4)")
self.spouse?.address?.area = [string2, string3, string4]
self.spouse?.address.area = [string2, string3, string4]
self.loadSponseInfo()
}
self.present(vc, animated: true)
......@@ -389,13 +387,13 @@ extension YHSpousePrimaryInfoVC : UITableViewDelegate, UITableViewDataSource {
if isEmptyString(spouse.nationality) {
return false
}
if isEmptyString(spouse.address?.country) {
if isEmptyString(spouse.address.country) {
return false
}
if isEmptyString(spouse.address?.details) {
if isEmptyString(spouse.address.details) {
return false
}
if spouse.isBirthOverSeas(), isEmptyArray(spouse.address?.area) {
if spouse.isBirthOverSeas(), isEmptyArray(spouse.address.area) {
return false
}
return true
......
......@@ -98,10 +98,10 @@ class YHBrotherInfoVC: YHBaseViewController {
let item13 = YHFormDetailItem(type: .birthCity)
if brotherInfo.isBirthOverSeas() {
item13.value = brotherInfo.birthPlace?.foreign
item13.value = brotherInfo.birthPlace.foreign
item13.placeHolder = "请输入".local
} else {
item13.value = brotherInfo.birthPlace?.area?.joined(separator: ",")
item13.value = brotherInfo.birthPlace.area.joined(separator: ",")
item13.placeHolder = "请选择".local
}
......@@ -237,16 +237,16 @@ extension YHBrotherInfoVC : UITableViewDelegate, UITableViewDataSource {
[weak self] (text, isEditEnd) in
guard let self = self else { return }
if detailItem.type == .brotherName {
self.brotherInfo?.subsetName = text
self.brotherInfo?.subsetName = text ?? ""
} else if detailItem.type == .birthCity {
self.brotherInfo?.birthPlace?.foreign = text
self.brotherInfo?.birthPlace.foreign = text ?? ""
} else if detailItem.type == .occupationName {
self.brotherInfo?.occupationName = text
self.brotherInfo?.occupationName = text ?? ""
} else if detailItem.type == .hkIdentityCardNumber {
self.brotherInfo?.hkIdentityCard = text
self.brotherInfo?.hkIdentityCard = text ?? ""
}
if isEditEnd {
......@@ -414,7 +414,7 @@ extension YHBrotherInfoVC : UITableViewDelegate, UITableViewDataSource {
[weak self] (string1, string2, string3, string4) in
guard let self = self else { return }
print("\(string1)\n\(string2)\n\(string3)\n\(string4)")
self.brotherInfo?.birthPlace?.area = [string2, string3, string4]
self.brotherInfo?.birthPlace.area = [string2, string3, string4]
self.loadBasicInfo()
self.saveInfo()
}
......
......@@ -124,6 +124,7 @@ class YHFamilyMemberInfoVC: YHBaseViewController {
YHHUD.flash(message: "资料还未填完")
return
}
submit()
}
// 检查填写信息完整性
......@@ -166,28 +167,31 @@ class YHFamilyMemberInfoVC: YHBaseViewController {
// 配偶section
if let sponse = familyMemberInfo?.spouse {
// 信息未填写时服务器返回的relation=0
sponse.relation = String(format: "%d", YHFamilyMemberType.spouse.rawValue)
sponse.relationType = .spouse
let sponseArray:[YHFormItemProtocol] = [YHFormTitleItem(type: .sponse), sponse]
items.append(sponseArray)
}
// 父母section
var parents = [YHFormItemProtocol]()
let item0 = YHFormTitleItem(type: .parent)
parents.append(item0)
if let father = familyMemberInfo?.father {
// 信息未填写时服务器返回的relation=0
father.relation = String(format: "%d", YHFamilyMemberType.father.rawValue)
father.relationType = .father
parents.append(father)
}
if let mother = familyMemberInfo?.mother {
// 信息未填写时服务器返回的relation=0
mother.relation = String(format: "%d", YHFamilyMemberType.mother.rawValue)
mother.relationType = .mother
parents.append(mother)
}
if !parents.isEmpty {
let item0 = YHFormTitleItem(type: .parent)
parents.insert(item0, at: 0)
items.append(parents)
}
items.append(parents)
// 子女section
var childArr:[YHFormItemProtocol] = [YHFormTitleItem(type: .child), YHFormAddItem(type: .addChild)]
......@@ -264,14 +268,31 @@ extension YHFamilyMemberInfoVC {
// 添加兄弟姐妹子女
func deleteFamilyMember(orderId:Int, memberId:Int, callBack:((Bool)->Void)?) {
if orderId > 0 && memberId > 0 {
let dict = ["id":memberId, "orderId": orderId]
self.familyRequest.deleteFamilyMember(params: dict) { success, error in
let dict = ["id":memberId, "order_id": orderId]
self.familyRequest.deleteFamilyMember(params: dict) {
success, error in
if success {
YHHUD.flash(message: "删除成功".local)
} else {
YHHUD.flash(message: "删除失败".local)
}
if let callBack = callBack {
callBack(success)
}
}
}
}
func submit() {
self.familyRequest.submitAllFamilyInfo(orderId: self.orderId) {
success, error in
if success {
YHHUD.flash(message: "保存成功")
} else {
YHHUD.flash(message: "保存失败")
}
}
}
}
extension YHFamilyMemberInfoVC : UITableViewDelegate, UITableViewDataSource {
......@@ -297,7 +318,7 @@ extension YHFamilyMemberInfoVC : UITableViewDelegate, UITableViewDataSource {
// 配偶父母子女兄妹title
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemTitleCell.cellReuseIdentifier, for: indexPath) as! YHFormItemTitleCell
cell.setTitleAndSubTitle(title:formItem.getTitle())
cell.setTitleAndSubTitle(title:formItem.getTitle(), subTitle: formItem.getSubTitle())
// 决定右边按钮显示样式
cell.showEditType(type: .none)
......@@ -315,6 +336,7 @@ extension YHFamilyMemberInfoVC : UITableViewDelegate, UITableViewDataSource {
if formItem.type == .child {
if self.isChildsEditMode == .canCancel {
self.isChildsEditMode = .canEdit
} else if self.isChildsEditMode == .canEdit {
self.isChildsEditMode = .canCancel
}
......@@ -322,6 +344,7 @@ extension YHFamilyMemberInfoVC : UITableViewDelegate, UITableViewDataSource {
if formItem.type == .brother {
if self.isBrothersEditMode == .canCancel {
self.isBrothersEditMode = .canEdit
} else if self.isBrothersEditMode == .canEdit {
self.isBrothersEditMode = .canCancel
}
......@@ -337,13 +360,16 @@ extension YHFamilyMemberInfoVC : UITableViewDelegate, UITableViewDataSource {
let detailItem = item as! YHFamilyMember
let cell = tableView.dequeueReusableCell(withIdentifier: YHFormItemEnterDetailCell.cellReuseIdentifier, for: indexPath) as! YHFormItemEnterDetailCell
cell.title = detailItem.getTitle()
cell.detailLabel.textColor = (isNeedShowError && detailItem.notFillNumber > 0 ? .failColor : .labelTextColor2)
cell.detailLabel.textColor = (isNeedShowError && detailItem.notFillNumber != 0 ? .failColor : .labelTextColor2)
if detailItem.notFillNumber > 0 {
cell.detailLabel.text = String(format: "有%d项未填写".local, detailItem.notFillNumber)
} else {
} else if detailItem.notFillNumber == 0 {
cell.detailLabel.text = "已填完".local
} else {
cell.detailLabel.text = "还未开始填写".local
}
if detailItem.relationType == .child || detailItem.relationType == .brother {
if detailItem.subsetName == nil || detailItem.subsetName == "" { // 姓名为空
if detailItem.relationType == .child {
......@@ -377,8 +403,8 @@ extension YHFamilyMemberInfoVC : UITableViewDelegate, UITableViewDataSource {
if (indexPath.row-1 >= childCount) { return }
guard let child = self.familyMemberInfo?.child?[indexPath.row-1] else { return }
var name = String(format: "子女%d", indexPath.row)
if let subsetName = detailItem.subsetName, !subsetName.isEmpty {
name += "(\(subsetName))"
if !detailItem.subsetName.isEmpty {
name += "(\(detailItem.subsetName))"
}
let msg = String(format: "确定要删除%@吗?".local, name)
......@@ -389,10 +415,12 @@ extension YHFamilyMemberInfoVC : UITableViewDelegate, UITableViewDataSource {
self.deleteFamilyMember(orderId: self.orderId, memberId:child.id) {
[weak self] success in
guard let self = self else { return }
self.isChildsEditMode = .none
self.isBrothersEditMode = .none
self.requestFamilyInfo()
if success {
self.isChildsEditMode = .none
self.isBrothersEditMode = .none
self.requestFamilyInfo()
}
}
}
......@@ -403,8 +431,8 @@ extension YHFamilyMemberInfoVC : UITableViewDelegate, UITableViewDataSource {
if (indexPath.row-1 >= brotherCount) { return }
guard let brother = self.familyMemberInfo?.brother?[indexPath.row-1] else { return }
var name = String(format: "兄弟姐妹%d", indexPath.row)
if let subsetName = detailItem.subsetName, !subsetName.isEmpty {
name += "(\(subsetName))"
if !detailItem.subsetName.isEmpty {
name += "(\(detailItem.subsetName))"
}
let msg = String(format: "确定要删除%@吗?".local, name)
......@@ -415,9 +443,12 @@ extension YHFamilyMemberInfoVC : UITableViewDelegate, UITableViewDataSource {
self.deleteFamilyMember(orderId: self.orderId, memberId:brother.id) {
[weak self] success in
guard let self = self else { return }
self.isChildsEditMode = .none
self.isBrothersEditMode = .none
self.requestFamilyInfo()
if success {
self.isChildsEditMode = .none
self.isBrothersEditMode = .none
self.requestFamilyInfo()
}
}
}
}
......
......@@ -13,7 +13,8 @@ class YHParentInfoVC: YHBaseViewController {
var parentInfo: YHFamilyMember?
var items:[[YHFormItemProtocol]] = [[YHFormItemProtocol]]()
let familyRequest:YHFamilyRequestViewModel = YHFamilyRequestViewModel()
// 是否显示未填写错误提示
var isNeedShowError = false
var bottomView: YHSaveAndSubmitView = {
let view = YHSaveAndSubmitView.createView()
......@@ -100,29 +101,38 @@ class YHParentInfoVC: YHBaseViewController {
let title1 = YHFormTitleItem(type: .fatherInfo)
let item10 = YHFormDetailItem(type: .fatherName)
item10.value = parentInfo.subsetName
item10.tips = "请输入姓名".local
item10.placeHolder = "请输入姓名".local
arr1.append(title1)
arr1.append(item10)
} else { // 母亲
let title1 = YHFormTitleItem(type: .motherInfo)
let item10 = YHFormDetailItem(type: .motherName)
item10.value = parentInfo.subsetName
item10.tips = "请输入姓名".local
item10.placeHolder = "请输入姓名".local
arr1.append(title1)
arr1.append(item10)
}
let item11 = YHFormDetailItem(type: .birthday)
item11.value = parentInfo.birthday
item11.tips = "请选择生日日期".local
let item12 = YHFormDetailItem(type: .birthNation)
item12.value = String(parentInfo.isBirthOverSeas())
let item13 = YHFormDetailItem(type: .birthCity)
if parentInfo.isBirthOverSeas() {
item13.value = parentInfo.birthPlace?.foreign
item13.value = parentInfo.birthPlace.foreign
item13.placeHolder = "请输入".local
item13.tips = "请输入城市".local
} else {
item13.value = parentInfo.birthPlace?.area?.joined(separator: ",")
item13.value = parentInfo.birthPlace.area.joined(separator: ",")
item13.placeHolder = "请选择".local
item13.tips = "请选择城市".local
}
let arr:[YHFormItemProtocol] = [item11, item12, item13]
arr1.append(contentsOf: arr)
......@@ -134,19 +144,23 @@ class YHParentInfoVC: YHBaseViewController {
if !parentInfo.isDead() { // 健在
let item14 = YHFormDetailItem(type: .marriageState)
item14.value = parentInfo.married
item14.placeHolder = "请选择".local
item14.tips = "请选择".local
arr1.append(item14)
// 职业信息
let title2 = YHFormTitleItem(type: .occupationInfo)
let item20 = YHFormDetailItem(type: .occupation)
item20.value = parentInfo.occupation
item20.placeHolder = "请输入".local
item20.placeHolder = "请选择".local
item20.tips = "请选择".local
var arr2:[YHFormItemProtocol] = [title2, item20]
if parentInfo.isNowHaveJob() {
let item21 = YHFormDetailItem(type: .occupationName)
item21.value = parentInfo.occupationName
item21.placeHolder = "请输入".local
item21.tips = "请输入".local
arr2.append(item21)
}
......@@ -154,6 +168,7 @@ class YHParentInfoVC: YHBaseViewController {
let title3 = YHFormTitleItem(type: .liveInfo)
let item30 = YHFormDetailItem(type: .liveNationOrArea)
item30.value = parentInfo.liveCountry
item30.tips = "请选择国家/地区".local
let arr3:[YHFormItemProtocol] = [title3, item30]
// 香港身份证
......@@ -165,6 +180,7 @@ class YHParentInfoVC: YHBaseViewController {
if parentInfo.isHaveHKIdentityCard() { // 办理过香港身份证才显示证号
let item41 = YHFormDetailItem(type: .hkIdentityCardNumber)
item41.value = parentInfo.hkIdentityCard
item41.tips = "请输入正确的香港身份证号码".local
arr4.append(item41)
}
items.append(contentsOf: [arr0, arr1, arr2, arr3, arr4])
......@@ -264,19 +280,30 @@ extension YHParentInfoVC : UITableViewDelegate, UITableViewDataSource {
cell.isMust = detailItem.isNeed
cell.title = detailItem.getTitle()
cell.text = detailItem.value
cell.placeHolder = detailItem.placeHolder
if detailItem.type == .hkIdentityCardNumber { // 输入香港身份证号码
let isEmptyValue = isEmptyString(detailItem.value)
var isUnvalidFormat = true
if let value = detailItem.value, value.isHKIdentityCardNumber() {
isUnvalidFormat = false
}
let isNeedShowTips = isEmptyValue || isUnvalidFormat
cell.setTips(detailItem.tips, isShow: isNeedShowError && isNeedShowTips)
} else {
cell.setTips(detailItem.tips, isShow: isNeedShowError && detailItem.isShowTips)
}
cell.textChange = {
[weak self] (text, isEditEnd) in
guard let self = self else { return }
if detailItem.type == .fatherName || detailItem.type == .motherName {
self.parentInfo?.subsetName = text
self.parentInfo?.subsetName = text ?? ""
} else if detailItem.type == .birthCity {
self.parentInfo?.birthPlace?.foreign = text
self.parentInfo?.birthPlace.foreign = text ?? ""
} else if detailItem.type == .occupationName {
self.parentInfo?.occupationName = text
self.parentInfo?.occupationName = text ?? ""
} else if detailItem.type == .hkIdentityCardNumber {
self.parentInfo?.hkIdentityCard = text
......@@ -295,6 +322,7 @@ extension YHParentInfoVC : UITableViewDelegate, UITableViewDataSource {
cell.isMust = detailItem.isNeed
cell.title = detailItem.getTitle()
cell.detail = detailItem.value
cell.setTips(detailItem.tips, isShow: isNeedShowError && detailItem.isShowTips)
return cell
}
......@@ -443,7 +471,7 @@ extension YHParentInfoVC : UITableViewDelegate, UITableViewDataSource {
[weak self] (string1, string2, string3, string4) in
guard let self = self else { return }
print("\(string1)\n\(string2)\n\(string3)\n\(string4)")
self.parentInfo?.birthPlace?.area = [string2, string3, string4]
self.parentInfo?.birthPlace.area = [string2, string3, string4]
self.loadBasicInfo()
}
self.present(vc, animated: true)
......@@ -499,8 +527,70 @@ extension YHParentInfoVC : UITableViewDelegate, UITableViewDataSource {
extension YHParentInfoVC {
// 检查填写信息完整性
func checkIntegrity() -> Bool {
guard let parentInfo = parentInfo else { return false }
if isEmptyString(parentInfo.subsetName) || isEmptyString(parentInfo.birthday) {
return false
}
if parentInfo.isBirthOverSeas() {
if isEmptyString(parentInfo.birthPlace.foreign) {
return false
}
} else {
if isEmptyArray(parentInfo.birthPlace.area) {
return false
}
}
if parentInfo.isDead() {
return true
}
// 以下是父母未死的情况
if isEmptyString(parentInfo.married) || isEmptyString(parentInfo.occupation) || isEmptyString(parentInfo.liveCountry) {
return false
}
if parentInfo.isNowHaveJob() {
if isEmptyString(parentInfo.occupationName) {
return false
}
}
if parentInfo.isHaveHKIdentityCard() { // 办理过香港身份证才显示证号
if isEmptyString(parentInfo.hkIdentityCard) {
return false
}
if let hkIdCard = parentInfo.hkIdentityCard, !hkIdCard.isHKIdentityCardNumber() {
return false
}
}
return true
}
func submitInfo() {
let isChecked = checkIntegrity()
isNeedShowError = !isChecked
self.tableView .reloadData()
if !isChecked {
YHHUD.flash(message: "资料还未填完")
return
}
guard let parentInfo = parentInfo else { return }
guard let info = parentInfo.toDictionary() else { return }
......@@ -516,4 +606,6 @@ extension YHParentInfoVC {
}
}
}
}
......@@ -301,13 +301,13 @@ class YHFormTitleItem : YHFormItemProtocol {
func getSubTitle() -> String {
switch self.type {
case .sponse:
return String(format: "(%@)", "如未婚、离婚、丧偶可不填".local)
return String(format: " (%@)", "如未婚、离婚、丧偶可不填".local)
case .parent:
return String(format: "(%@)", "包含已故".local)
return String(format: " (%@)", "包含已故".local)
case .brother:
return String(format: "(%@)", "如无可不填".local)
return String(format: " (%@)", "如无可不填".local)
case .child:
return String(format: "(%@)", "如无可不填".local)
return String(format: " (%@)", "如无可不填".local)
case .mainApplicantEducation:
return "(请从大专开始写起)".local
case .mainApplicantProfessionalQualification:
......@@ -882,43 +882,43 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
var id: Int = 0
var deceased: Int = 0
var custody: Int = 0
var nationality: String?
var nationality: String = ""
var orderId: Int = 0
var relation: String?
var hasDegree: String?
var hasDegreeJson: [YHHasDegreeJson]?
var relation: String = ""
var hasDegree: String = ""
var hasDegreeJson: [YHHasDegreeJson] = []
var follow: Int = 0
var statement: Int = 0
var subsetName: String?
var subsetNamePinyin: YHSubsetNamePinyin?
var birthday: String?
var subsetName: String = ""
var subsetNamePinyin: YHSubsetNamePinyin = YHSubsetNamePinyin()
var birthday: String = ""
var birthPlaceAboard: Int = 0
var birthPlace: YHAddress?
var occupation: String?
var occupationName: String?
var operatorName: String?
var birthPlace: YHAddress = YHAddress()
var occupation: String = ""
var occupationName: String = ""
var operatorName: String = ""
var childHasHkId: YHChildStepchildClass = YHChildStepchildClass()
var hkIdentityCard: String?
var sex: Int = 0
var married: String?
var married: String = ""
var nows: Int = 0
var address: YHAddress?
var address: YHAddress = YHAddress()
var childStepchild: YHChildStepchildClass = YHChildStepchildClass()
var childInHk: YHChildStepchildClass = YHChildStepchildClass()
var countryIdentity: YHChildStepchildClass?
var hkIdentity: String?
var liveCountry: String?
var countryIdentity: YHChildStepchildClass = YHChildStepchildClass()
var hkIdentity: String = ""
var liveCountry: String = ""
var finishFollow: Int = 0
var step: Int = 0
var isHandled: Int = 0
var notFillNumber: Int = 0
var notFillNumber: Int = -1
var certificates: YHCertificates?
var usedName: String?
var hkIdentityOther: String?
var usedName: String = ""
var hkIdentityOther: String = ""
var isHkHandled: Int = 0
var isInHk: Int = 0
var isLiveOverseaYear: Int = 0
var surname: String?
var surname: String = ""
enum CodingKeys: String, CodingKey {
case id = "id"
......@@ -1109,19 +1109,37 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
var relationType:YHFamilyMemberType {
if relation == "1" {
return .father
} else if relation == "2" {
return .mother
} else if relation == "3" {
return .spouse
} else if relation == "4" {
return .child
} else if relation == "5" {
return .brother
get {
if relation == "1" {
return .father
} else if relation == "2" {
return .mother
} else if relation == "3" {
return .spouse
} else if relation == "4" {
return .child
} else if relation == "5" {
return .brother
}
return .none
}
return .none
set {
if newValue == .father {
relation = "1"
} else if newValue == .mother {
relation = "2"
} else if newValue == .spouse {
relation = "3"
} else if newValue == .child {
relation = "4"
} else if newValue == .brother {
relation = "5"
} else {
relation = ""
}
}
}
// YHFamilyMemberProtocol
......@@ -1150,10 +1168,10 @@ class YHFamilyMember: SmartCodable, YHFormItemProtocol {
// MARK: - 居住地址信息 YHAddress
class YHAddress: SmartCodable {
var area: [String]?
var country: String?
var details: String?
var foreign: String?
var area: [String] = []
var country: String = ""
var details: String = ""
var foreign: String = ""
enum CodingKeys: String, CodingKey {
case area = "area"
......@@ -1262,9 +1280,8 @@ class YHCNIdentityCard: SmartCodable {
// MARK: - YHHasDegreeJson
class YHHasDegreeJson: SmartCodable {
var degree: String?
var address: String?
var degree: String = ""
var address: String = ""
enum CodingKeys: String, CodingKey {
case degree = "degree"
......
......@@ -14,8 +14,9 @@ class YHFamilyRequestViewModel {
//请求所有家庭成员信息
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
YHHUD.show(.progress(message: "数据加载中..."))
let _ = YHNetRequest.getRequest(url: strUrl, params:params) {[weak self] json, code in
......@@ -44,7 +45,7 @@ class YHFamilyRequestViewModel {
YHHUD.show(.progress(message: "数据加载中..."))
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
......@@ -66,7 +67,7 @@ class YHFamilyRequestViewModel {
YHHUD.show(.progress(message: "数据加载中..."))
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Family.familyMemberDeleteApi
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Family.deleteFamilyMemberApi
let _ = YHNetRequest.postRequest(url: strUrl, params:params) { json, code in
YHHUD.hide()
......@@ -81,4 +82,24 @@ class YHFamilyRequestViewModel {
callBackBlock(false,err)
}
}
// 提交所有家庭成员信息
func submitAllFamilyInfo(orderId:Int, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
YHHUD.show(.progress(message: "数据加载中..."))
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Family.submitAllFamilyInfoApi
let _ = YHNetRequest.postRequest(url: strUrl, params:["order_id":orderId]) { json, code in
YHHUD.hide()
printLog("model 是 ==> \(json)")
if json.code == NetWorkCode.success.rawValue {
callBackBlock(true,nil)
} else {
callBackBlock(false, nil)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
}
......@@ -7,7 +7,24 @@
//
import UIKit
import SmartCodable
class TestOne: SmartCodable {
var one: TestTwo = TestTwo()
var next:Int = 0
required init() {
}
}
class TestTwo: SmartCodable {
var id:Int = 1
var name:String = "dy"
required init() {
}
}
......@@ -464,7 +464,14 @@ extension YHFormPickerView {
func getSubType(_ title: String?) -> YHFormPickerViewSubType {
guard let title = title else { return .none }
guard let title = title, !title.isEmpty else {
if let arr = dataDict[type], arr.count > 0 {
let item0:YHFormPickerViewItem = arr[0]
return item0.type
}
return .none
}
switch type {
......
......@@ -131,9 +131,9 @@ extension YHOtherInfoFillViewController {
otherInfoVM.saveOtherInfo(params: param) { success, error in
if success == true {
YHHUD.flash(message: "保存成功")
YHHUD.flash(message: "操作成功")
} else {
let msg = error?.errorMsg ?? "保存失败"
let msg = error?.errorMsg ?? "操作失败"
YHHUD.flash(message: msg)
}
}
......
......@@ -164,7 +164,10 @@ extension YHOtherInfoFillCell {
}
let residenceView = YHOtherResidenceFillView(frame: .zero)
residenceView.dataModel = dataModel.residences[0] //for test hjl
if dataModel.residences.count > 0 {
residenceView.dataModel = dataModel.residences[0] //for test hjl
}
holdView1.addSubview(residenceView)
residenceView.snp.makeConstraints { make in
make.top.equalTo(sessionView.snp.bottom)
......
//
// YHPreviewAcademicAndProfessionalQualificationViewController.swift
// galaxy
//
// Created by davidhuangA on 2024/2/29.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
/*
*学历/专业资格 预览
*/
class YHPreviewAcademicAndProfessionalQualificationViewController: YHPreviewBaseViewController {
var arrData : [YHPreviewInfoSessionModel] = []
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
}
}
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)
}
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
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHPreviewInfoCell.self)
cell.selectionStyle = .none
cell.model = arrData[indexPath.row]
return cell
}
}
......@@ -9,7 +9,7 @@
import UIKit
import JXSegmentedView
class YHPersonInfoBaseViewController: YHBaseViewController {
class YHPreviewBaseViewController: YHBaseViewController {
public var homeTableView: YHGestureTableView = {
let tableView = YHGestureTableView(frame: .zero, style: .grouped)
......@@ -53,7 +53,7 @@ class YHPersonInfoBaseViewController: YHBaseViewController {
// MARK: - 滑动使用
extension YHPersonInfoBaseViewController: UIScrollViewDelegate {
extension YHPreviewBaseViewController: UIScrollViewDelegate {
//控制滑动交互
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let scrollViewSet: CGFloat = scrollView.contentOffset.y
......@@ -72,7 +72,7 @@ extension YHPersonInfoBaseViewController: UIScrollViewDelegate {
}
// MARK: - JXSegmentedListContainerViewListDelegate
extension YHPersonInfoBaseViewController: JXSegmentedListContainerViewListDelegate {
extension YHPreviewBaseViewController: JXSegmentedListContainerViewListDelegate {
func listView() -> UIView {
return view
}
......@@ -81,7 +81,7 @@ extension YHPersonInfoBaseViewController: JXSegmentedListContainerViewListDelega
// MARK: - UITableViewDelegate 和 UITableViewDataSource
extension YHPersonInfoBaseViewController : UITableViewDelegate,UITableViewDataSource {
extension YHPreviewBaseViewController : UITableViewDelegate,UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 0
}
......
......@@ -10,7 +10,7 @@ import UIKit
/*
*基本资料信息 预览
*/
class YHPreviewBasiceInformationViewController: YHPersonInfoBaseViewController {
class YHPreviewBasiceInformationViewController: YHPreviewBaseViewController {
var arrData : [YHPreviewInfoSessionModel] = []
override func viewDidLoad() {
super.viewDidLoad()
......
......@@ -9,7 +9,7 @@
import UIKit
import JXSegmentedView
class YHPersonInfoControllerHoldViewController: UIViewController {
class YHPreviewControllerHoldViewController: UIViewController {
var canScroll : Bool = false {
didSet {
......@@ -19,8 +19,14 @@ class YHPersonInfoControllerHoldViewController: UIViewController {
}
}
var myDefaultNavItemIndex : Int = 0 {
didSet {
self.segmentedView.selectItemAt(index: myDefaultNavItemIndex)
}
}
let arrItemTitles = ["主申请人信息","家庭成员信息","基本资料","学历/专业资格","工作经验","其他信息"]
var arrItemVCs : [YHPersonInfoBaseViewController] = []
var arrItemVCs : [YHPreviewBaseViewController] = []
var segmentedView : JXSegmentedView = JXSegmentedView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 55))
lazy var segmentedDataSource: JXSegmentedBaseDataSource = {
let dataSource = JXSegmentedTitleDataSource()
......@@ -50,11 +56,11 @@ class YHPersonInfoControllerHoldViewController: UIViewController {
do {
//主申请人
let vc = YHMainApplicantInfoPreviewViewController()
let vc = YHPreviewMainApplicantInfoViewController()
arrItemVCs.append(vc)
}
do {
//家庭成员信息
let vc = YHPreviewFamilyMemberViewController()
arrItemVCs.append(vc)
}
......@@ -64,7 +70,8 @@ class YHPersonInfoControllerHoldViewController: UIViewController {
arrItemVCs.append(vc)
}
do {
let vc = YHPreviewFamilyMemberViewController()
//学历/专业资格
let vc = YHPreviewAcademicAndProfessionalQualificationViewController()
arrItemVCs.append(vc)
}
do {
......@@ -78,12 +85,6 @@ class YHPersonInfoControllerHoldViewController: UIViewController {
}
//segmentedViewDataSource一定要通过属性强持有!!!!!!!!!
segmentedView.dataSource = segmentedDataSource
segmentedView.delegate = self
......@@ -133,7 +134,7 @@ class YHPersonInfoControllerHoldViewController: UIViewController {
}
}
extension YHPersonInfoControllerHoldViewController: JXSegmentedViewDelegate {
extension YHPreviewControllerHoldViewController: JXSegmentedViewDelegate {
func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) {
NotificationCenter.default.post(name: Notification.Name(rawValue: "scrollViewDidEndDragging0"), object: nil)
}
......@@ -150,7 +151,7 @@ extension YHPersonInfoControllerHoldViewController: JXSegmentedViewDelegate {
}
}
extension YHPersonInfoControllerHoldViewController: JXSegmentedListContainerViewDataSource {
extension YHPreviewControllerHoldViewController: JXSegmentedListContainerViewDataSource {
func numberOfLists(in listContainerView: JXSegmentedListContainerView) -> Int {
if let titleDataSource = segmentedView.dataSource as? JXSegmentedBaseDataSource {
return titleDataSource.dataSource.count
......
......@@ -10,7 +10,7 @@ import UIKit
/*
*家庭成员信息 预览
*/
class YHPreviewFamilyMemberViewController: YHPersonInfoBaseViewController {
class YHPreviewFamilyMemberViewController: YHPreviewBaseViewController {
var arrData : [YHPreviewInfoSessionModel] = [] //用于数据展示
var arrDataForParents : [YHPreviewInfoSessionModel] = []
......@@ -25,7 +25,7 @@ class YHPreviewFamilyMemberViewController: YHPersonInfoBaseViewController {
private var buttonHoldView : UIView = {
let view = UIView()
view.backgroundColor = .red
// view.backgroundColor = .red
return view
}()
......@@ -111,6 +111,12 @@ private extension YHPreviewFamilyMemberViewController {
}
homeTableView.register(YHPreviewInfoCell.self,forCellReuseIdentifier: YHPreviewInfoCell.cellReuseIdentifier)
homeTableView.reloadData()
//延迟刷新
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
self.clickButton(sender: self.parentButton)
}
}
func createButton() -> UIButton {
......@@ -129,10 +135,29 @@ private extension YHPreviewFamilyMemberViewController {
@objc func clickButton(sender : UIButton) {
for button in arrButtons {
if let arr = button.layer.sublayers {
for layer in arr {
if layer is CAGradientLayer {
layer.removeFromSuperlayer()
}
}
}
}
sender.addYinHeGradualLayer()
sender.layoutIfNeeded()
if sender == parentButton {
arrData = arrDataForParents
} else if sender == childrenButton {
arrData = arrDataForChildren
} else if sender == brotherButton {
arrData = arrDataForBrother
} else if sender == spouseButton {
arrData = arrDataForSpouse
} else {
arrData = []
}
homeTableView.reloadData()
}
func installData() {
......
......@@ -10,7 +10,7 @@ import UIKit
/*
*主申请人信息 预览
*/
class YHMainApplicantInfoPreviewViewController: YHPersonInfoBaseViewController {
class YHPreviewMainApplicantInfoViewController: YHPreviewBaseViewController {
var arrData : [YHPreviewInfoSessionModel] = []
override func viewDidLoad() {
super.viewDidLoad()
......@@ -20,7 +20,7 @@ class YHMainApplicantInfoPreviewViewController: YHPersonInfoBaseViewController {
}
private extension YHMainApplicantInfoPreviewViewController {
private extension YHPreviewMainApplicantInfoViewController {
func installData() {
do {
//国家信息
......@@ -106,7 +106,7 @@ private extension YHMainApplicantInfoPreviewViewController {
// MARK: - UITableViewDelegate 和 UITableViewDataSource
extension YHMainApplicantInfoPreviewViewController {
extension YHPreviewMainApplicantInfoViewController {
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrData.count
}
......
//
// YHPersonInformationViewController.swift
// YHPreviewMainViewController.swift
// galaxy
//
// Created by davidhuangA on 2024/1/29.
......@@ -9,7 +9,7 @@
import UIKit
import GKNavigationBarSwift
class YHPersonInformMainViewController: YHBaseViewController {
class YHPreviewMainViewController: YHBaseViewController {
var orderId : Int?
var canScroll : Bool = true
......@@ -19,7 +19,15 @@ class YHPersonInformMainViewController: YHBaseViewController {
}
}
let cellView: YHPersonInfoControllerHoldViewController = YHPersonInfoControllerHoldViewController()
var myDefaultIndex : Int = 0 {
didSet {
DispatchQueue.main.asyncAfter(wallDeadline: .now() + 0.25) {[weak self] in
self?.cellView.myDefaultNavItemIndex = self?.myDefaultIndex ?? 0
}
}
}
let cellView: YHPreviewControllerHoldViewController = YHPreviewControllerHoldViewController()
var homeTableView: YHGestureTableView = {
let tableView = YHGestureTableView(frame: .zero, style: .grouped)
......@@ -86,10 +94,6 @@ class YHPersonInformMainViewController: YHBaseViewController {
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
cellView.view.frame = CGRect(x: 0, y: 0, width: KScreenWidth, height: myCellHeight)
......@@ -97,7 +101,7 @@ class YHPersonInformMainViewController: YHBaseViewController {
}
// MARK: - 私有方法
extension YHPersonInformMainViewController {
extension YHPreviewMainViewController {
@objc func leaveTopOp() {
canScroll = true
......@@ -212,7 +216,7 @@ extension YHPersonInformMainViewController {
}
// MARK: - UITableViewDelegate 和 UITableViewDataSource
extension YHPersonInformMainViewController : UITableViewDelegate,UITableViewDataSource {
extension YHPreviewMainViewController : UITableViewDelegate,UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return 1
......@@ -247,8 +251,6 @@ extension YHPersonInformMainViewController : UITableViewDelegate,UITableViewData
let cell = UITableViewCell()
cellView.view.frame = CGRect(x: 0, y: 0, width: cell.contentView.bounds.size.width, height: myCellHeight)
cell.contentView.addSubview(cellView.view)
cellView.view.backgroundColor = .orange//for test hjl
return cell
}
......@@ -258,7 +260,7 @@ extension YHPersonInformMainViewController : UITableViewDelegate,UITableViewData
}
}
extension YHPersonInformMainViewController: UIScrollViewDelegate {
extension YHPreviewMainViewController: UIScrollViewDelegate {
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let bottomCellOffset: CGFloat = homeTableView.rect(forSection: 0).origin.y
if (scrollView.contentOffset.y >= bottomCellOffset) {
......
......@@ -10,7 +10,7 @@ import UIKit
/*
*其他信息 预览
*/
class YHPreviewOtherInformationViewController: YHPersonInfoBaseViewController {
class YHPreviewOtherInformationViewController: YHPreviewBaseViewController {
var arrData : [YHPreviewInfoSessionModel] = []
override func viewDidLoad() {
super.viewDidLoad()
......
......@@ -7,7 +7,9 @@
//
import UIKit
//import AttributedString
var gloabView : YHInformationFillTipsAlertView?
class YHInformationFillTipsAlertView: UIView {
typealias Block = (Bool) -> ()
......@@ -47,16 +49,23 @@ class YHInformationFillTipsAlertView: UIView {
return tableView
}()
//类方法
//类方法 - 展示
static func showCheckView(callBack: @escaping Block) {
let view = YHInformationFillTipsAlertView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight))
view.block = callBack
let window = UIApplication.shared.yhKeyWindow()
window?.addSubview(view)
gloabView = view
}
//类方法 隐藏
static func hideCheckView() {
guard let view = gloabView else { return }
view.dismiss()
}
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = UIColor(white: 0.5, alpha: 0.1)
......@@ -197,7 +206,7 @@ class YHInformationFillTipsAlertView: UIView {
if agreeButton.isSelected == true {
block?(true)
dismiss()
dismiss() //for test hjl
} else {
YHHUD.flash(message: "请先勾选确认知悉内容")
}
......@@ -212,7 +221,7 @@ class YHInformationFillTipsAlertView: UIView {
@objc func agree() {
block?(true)
dismiss()
// dismiss()
}
@objc private func handleTap(_ sender: AnyObject?) {
......@@ -239,8 +248,6 @@ extension YHInformationFillTipsAlertView: UIGestureRecognizerDelegate {
}
}
// MARK: - UITableViewDelegate 和 UITableViewDataSource
extension YHInformationFillTipsAlertView : UITableViewDelegate,UITableViewDataSource {
......
......@@ -35,6 +35,7 @@ extension YHServiceCenterMainViewModel {
loadLocalScoreData()
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Order.scoreDetailApi
let _ = YHNetRequest.getRequest(url: strUrl,params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
......@@ -219,7 +220,10 @@ extension YHServiceCenterMainViewModel {
let _ = YHNetRequest.postRequest(url: strUrl,params: params) {[weak self] json, code in
//1. json字符串 转 对象
printLog("model 是 ==> \(json)")
guard let self = self else { return }
guard let self = self else {
callBackBlock(false,nil)
return
}
if json.code == 200 {
let dic = json.data
guard let resultModel = YHContactInfoScoreModel.deserialize(dict: dic as? [AnyHashable : Any]) else {
......@@ -241,10 +245,26 @@ extension YHServiceCenterMainViewModel {
//提交 温馨提示弹窗
func submitSweetNotifyOp( params:[String : Any],callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Users.submitSweetNotifyApi
let _ = YHNetRequest.postRequest(url: strUrl,params: params) {json, code in
let _ = YHNetRequest.postRequest(url: strUrl,params: params) {[weak self] json, code in
//1. json字符串 转 对象
printLog("model 是 ==> \(json)")
callBackBlock(true,nil)
guard let self = self else {
callBackBlock(false,nil)
return
}
if json.code == 200 {
let dic = json.data
guard let resultModel = YHContactInfoScoreModel.deserialize(dict: dic as? [AnyHashable : Any]) else {
callBackBlock(false,nil)
return
}
self.allInfoScoreModel = resultModel
callBackBlock(true,nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code),errorMsg: json.msg.count > 0 ? json.msg : "数据错误")
callBackBlock(false,error)
}
} failBlock: { err in
callBackBlock(false,err)
}
......
......@@ -52,9 +52,10 @@ class YHAllApiName {
// static let familyInfoApi = "frontend/order/information/family"
static let familyInfoApi = "infoflow/information/family"
// 删除家庭成员信息
static let familyMemberDeleteApi = "frontend/order/information/family/delete"
static let deleteFamilyMemberApi = "infoflow/family/delete"
// 提交家庭成员信息
static let submitAllFamilyInfoApi = "family/submit"
}
struct Education {
......
......@@ -95,7 +95,7 @@ class YHNetRequest: NSObject {
requestHeader.add(name:"sign",value:sign)
requestHeader.add(name: "token", value: YHLoginManager.shared.userModel?.token ?? "-")
testToken(&requestHeader) //for test hjl 使用固定token
// testToken(&requestHeader) //for test hjl 使用固定token
headers = requestHeader
}
......
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