Commit 079cd346 authored by David黄金龙's avatar David黄金龙

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

* 'develop' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS:
  //  旅行
  新增受养人 首页逻辑修改
  //   H5
  //  旅行
  //  旅行
parents c4f2bece eda88060
......@@ -165,9 +165,13 @@ extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource {
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
let model = self.viewModel.arrDataForSeviceCenterProgress[indexPath.section]
if model.type == 27 {
return 146
let arr = self.viewModel.arrDataForSeviceCenterProgress
if 0 <= indexPath.section, indexPath.section < arr.count {
let model = arr[indexPath.section]
if model.type == 27 {
return 146
}
return 128
}
return 128
}
......
......@@ -100,6 +100,24 @@ class YHAddAdoptersViewController: YHBaseViewController {
self.navigationController?.popViewController(animated: true)
}
func showDeleteAlert(_ model: YHAdopterDependentModel) {
var spouse = "子女"
if model.is_spouse == 1 {
spouse = "配偶"
}
var value = ""
if model.dep_name.count != 0 {
value = spouse + "(\(model.dep_name))"
} else {
value = spouse
}
YHCommonAlertView.show("", "您确定要删除\(value)吗?", "取消", "确认") {
self.viewModel.postDependentsDel(id: model.id) { [weak self] success, error in
guard let self = self else { return }
self.getData()
}
}
}
}
extension YHAddAdoptersViewController: UITableViewDelegate, UITableViewDataSource {
......@@ -174,10 +192,7 @@ extension YHAddAdoptersViewController: UITableViewDelegate, UITableViewDataSourc
}
cell.deleteBlock = { [weak self] model in
guard let self = self else { return }
self.viewModel.postDependentsDel(id: model.id) { [weak self] success, error in
guard let self = self else { return }
self.getData()
}
self.showDeleteAlert(model)
}
cell.clickBlock = { [weak self] model in
guard let self = self else { return }
......
......@@ -72,10 +72,6 @@ class YHAdopterNewPeopleViewController: YHBaseViewController {
stepView = {
let step = YHStepView()
step.dataSource = ["完善配偶信息", "上传配偶资料"]
step.block = { [weak self] (index) in
guard let self = self else { return }
self.updateDataSource()
}
return step
}()
view.addSubview(stepView)
......
......@@ -9,15 +9,15 @@
import UIKit
enum YHAdopterCardType {
case travel
case travel // 港澳通行证
case china
case resident
case birth
case id
case other
case marry
case chinaTravel
case chinaLife
case chinaTravel // 护照
case chinaLife // 中国居留许可签证
}
struct YHAdopterCardModel {
......
......@@ -37,7 +37,7 @@ class YHAdopterDependentModel: SmartCodable {
var created_at : String = ""
var updated_at : String = ""
var deleted_at : String = ""
var has_spouse : Bool = false //是否有配偶
var is_spouse : Int = 0 //是否有配偶
var sync_subset_id : Int = 0
required init() {
......
......@@ -162,6 +162,13 @@ class YHAdopterAddNewTableViewCell: UITableViewCell {
guard let dataSource = dataSource else {
return
}
if dataSource.count == 0 {
moreButton.isHidden = true
cannalButton.isHidden = true
} else {
moreButton.isHidden = false
cannalButton.isHidden = true
}
var total = 0
for i in 0 ..< dataSource.count {
let line = UIView()
......
......@@ -103,6 +103,14 @@ class YHAdopterCardExampleView: UIView {
fatalError("init(coder:) has not been implemented")
}
static func exampleView(type: YHAdopterCardType?) -> YHAdopterCardExampleView {
let view = YHAdopterCardExampleView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight))
view.type = type
return view
}
func setView() {
backgroundColor = UIColor(hex: 0x000000, alpha: 0.5)
centerView = {
......@@ -205,6 +213,10 @@ class YHAdopterCardExampleView: UIView {
dismiss()
}
@objc func show() {
UIApplication.shared.yhKeyWindow()?.addSubview(self)
}
@objc func dismiss() {
removeFromSuperview()
}
......
......@@ -111,10 +111,14 @@ class YHAdopterItemView: UIView {
func updateAllViews() {
guard let dataSource = dataSource else { return }
var spouse = "子女"
if dataSource.has_spouse {
if dataSource.is_spouse == 1 {
spouse = "配偶"
}
titleLabel.text = spouse + "(\(dataSource.dep_name))"
if dataSource.dep_name.count != 0 {
titleLabel.text = spouse + "(\(dataSource.dep_name))"
} else {
titleLabel.text = spouse
}
if dataSource.status == 0 {
explainLabel.text = "待完善"
explainLabel.textColor = UIColor.brandMainColor
......
......@@ -48,6 +48,13 @@ class YHTravelDocsPreparationDetailVC: YHBaseViewController {
//上个界面传递过来的数据对象
var dataModel : YHTravelDocsPreparationListModel = YHTravelDocsPreparationListModel()
var isDisableEdit: Bool {
get {
// 待审核或已完成 不能编辑
return (self.dataModel.status == 1 || self.dataModel.status == 3)
}
}
var orderId: Int = 0
var sectionItems:[YHTravelCerSectionItem] = []
......@@ -68,9 +75,12 @@ class YHTravelDocsPreparationDetailVC: YHBaseViewController {
return tableView
}()
let bottomViewHeight = 98.0
lazy var bottomView: UIView = {
let view = UIView()
view.backgroundColor = .white
view.isHidden = true
view.addSubview(bottomBtn)
bottomBtn.snp.makeConstraints { make in
make.left.equalTo(16)
......@@ -106,7 +116,7 @@ class YHTravelDocsPreparationDetailVC: YHBaseViewController {
}
self.bottomView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.height.equalTo(98.0)
make.height.equalTo(0)
}
loadDetailInfo()
}
......@@ -138,20 +148,22 @@ class YHTravelDocsPreparationDetailVC: YHBaseViewController {
for model in list {
let item2 = YHTravelCerSectionItem(type: .certificate, tipsArr: [])
if let model = model {
model.latest_validaty_date = self.viewModel.travelDetailModel?.latest_validaty_date ?? ""
item2.cerDetailModel = model
model.isCanEdit = !self.isDisableEdit
sectionItems.append(item2)
}
}
} else { // 没有上传过证件
let item = YHTravelCerSectionItem(type: .certificate, tipsArr: [])
var userId = 0
if let uid = YHLoginManager.shared.userModel?.id {
userId = Int(uid) ?? 0
}
if self.type == .HK || self.type == .chinesePassPort {
var userId = 0
if let uid = YHLoginManager.shared.userModel?.id {
userId = Int(uid) ?? 0
}
let item = YHTravelCerSectionItem(type: .certificate, tipsArr: [])
// 证件类型 1-护照 2-中国旅行证 3-港澳通行证 4-存款证明 5-其他
var type = -1
if self.type == .chinesePassPort {
......@@ -160,12 +172,41 @@ class YHTravelDocsPreparationDetailVC: YHBaseViewController {
type = 3
}
let cerModel1 = YHTravelDocsPreparationDetailItemModel(type: type, order_id: self.orderId, order_sn: "", img_back: "", img_front: "", status: 0, issue_start: "", issue_end: "", user_id:userId , user_type: dataModel.type, remark: "", nationality: "\(dataModel.nationality)")
cerModel1.latest_validaty_date = self.viewModel.travelDetailModel?.latest_validaty_date ?? ""
cerModel1.china_travel_latest_validate_date = self.viewModel.travelDetailModel?.china_travel_latest_validate_date ?? ""
cerModel1.isCanEdit = true
item.cerDetailModel = cerModel1
sectionItems.append(item)
} else if self.type == .forignPassPort { // 外国护照
// 外国护照
let item1 = YHTravelCerSectionItem(type: .certificate, tipsArr: [])
let cerModel1 = YHTravelDocsPreparationDetailItemModel(type: 1, order_id: self.orderId, order_sn: "", img_back: "", img_front: "", status: 0, issue_start: "", issue_end: "", user_id:userId , user_type: dataModel.type, remark: "", nationality: "\(dataModel.nationality)")
cerModel1.latest_validaty_date = self.viewModel.travelDetailModel?.latest_validaty_date ?? ""
cerModel1.china_travel_latest_validate_date = self.viewModel.travelDetailModel?.china_travel_latest_validate_date ?? ""
cerModel1.isCanEdit = true
item1.cerDetailModel = cerModel1
sectionItems.append(item1)
// 中国居留许可签证
let item2 = YHTravelCerSectionItem(type: .certificate, tipsArr: [])
let cerModel2 = YHTravelDocsPreparationDetailItemModel(type: 2, order_id: self.orderId, order_sn: "", img_back: "", img_front: "", status: 0, issue_start: "", issue_end: "", user_id:userId , user_type: dataModel.type, remark: "", nationality: "\(dataModel.nationality)")
cerModel2.isCanEdit = true
item2.cerDetailModel = cerModel2
sectionItems.append(item2)
}
}
self.bottomView.isHidden = self.isDisableEdit
self.bottomView.snp.updateConstraints { make in
make.height.equalTo(self.isDisableEdit ? 0.0 : bottomViewHeight)
}
tableView.reloadData()
self.view.setNeedsLayout()
self.view.layoutIfNeeded()
}
@objc func didSaveBtnClicked() {
......@@ -181,7 +222,14 @@ class YHTravelDocsPreparationDetailVC: YHBaseViewController {
if item.type == .certificate {
item.cerDetailModel.isNeedCheckCer = false
if item.cerDetailModel.img_front.isEmpty || item.cerDetailModel.img_back.isEmpty {
var noCerInfo = false
if item.cerDetailModel.type == 3 { // 只有港澳通行证有正反面
noCerInfo = (item.cerDetailModel.img_front.isEmpty || item.cerDetailModel.img_back.isEmpty)
} else {
noCerInfo = item.cerDetailModel.img_front.isEmpty
}
if noCerInfo {
hasError = true
item.cerDetailModel.isNeedCheckCer = true
if item.cerDetailModel.type == 3 { // 港澳通行证
......@@ -295,6 +343,7 @@ private extension YHTravelDocsPreparationDetailVC {
YHHUD.hide()
if success {
YHHUD.flash(message: "保存成功")
self.navigationController?.popViewController()
return
}
YHHUD.flash(message: error?.errorMsg ?? "保存失败")
......@@ -333,7 +382,9 @@ extension YHTravelDocsPreparationDetailVC: UITableViewDelegate, UITableViewDataS
cell.updateBlock = {
[weak self] in
guard let self = self else { return }
self.checkInfo()
if !self.isDisableEdit {
self.checkInfo()
}
self.tableView.reloadData()
}
cell.templateClick = {
......@@ -341,6 +392,17 @@ extension YHTravelDocsPreparationDetailVC: UITableViewDelegate, UITableViewDataS
[weak self] type in
guard let self = self else { return }
var templateType: YHAdopterCardType? = nil
if type == 1 { // 护照
templateType = .chinaTravel
} else if type == 2 { // 中国旅行证
templateType = .chinaLife
} else if type == 3 { // 港澳通行证
templateType = .travel
}
YHAdopterCardExampleView.exampleView(type: templateType).show()
}
}
return cell
......
......@@ -53,7 +53,9 @@ class YHTravelDocsPreparationListViewController: YHBaseViewController {
private extension YHTravelDocsPreparationListViewController {
func loadData() {
let params: [String : Any] = ["order_id": orderId]
YHHUD.show(.progress(message: "加载中..."))
viewModel.getTravelDocsList(param: params){ success, error in
YHHUD.hide()
if success {
} else {
......
......@@ -12,11 +12,12 @@ import SmartCodable
class YHTravelDocsPreparationDetailModel: SmartCodable {
var ttl : Int = -1 //电子签证有效期
var latest_validaty_date : String = "" //有效期最晚时间
var china_travel_latest_validate_date: String = "" // 中国居留许可签证有效期最晚时间
var list : [YHTravelDocsPreparationDetailItemModel?] = [] //电子签证有效期
required init() {
}
}
......@@ -35,12 +36,19 @@ class YHTravelDocsPreparationDetailItemModel: SmartCodable {
var nationality : String = ""//国籍 1-中国 2-国外
// 自定义
// 是否检测证件
var isNeedCheckCer: Bool = false
// 证件错误信息
var checkTips: String = ""
var isNeedShowRejectReason: Bool = false
var rejectReason: String = ""
var latest_validaty_date : String = ""
// 是否显示被拒理由
var isNeedShowRejectReason: Bool = false
var latest_validaty_date : String = "" //有效期最晚时间
var china_travel_latest_validate_date: String = "" // 中国居留许可签证有效期最晚时间
// 是否检测时间
var isNeedCheckDate: Bool = false
// 是否可编辑
var isCanEdit: Bool = true
required init() {
......@@ -63,7 +71,18 @@ class YHTravelDocsPreparationDetailItemModel: SmartCodable {
}
func isValidCer() -> Bool {
let latestDate = self.latest_validaty_date
var latestDate = self.latest_validaty_date
if self.type == 2 { // 中国居留许可签证
latestDate = self.china_travel_latest_validate_date
}
if latestDate.isEmpty {
if self.type == 2 {
YHHUD.flash(message: "赴港行程尚未预约,请前往预约")
return false
}
return true
}
let isValid = self.compareDates(dateString1: latestDate, dateString2: self.issue_end)
return isValid
}
......
......@@ -110,7 +110,9 @@ class YHTravelCertificateUploadCell: UITableViewCell {
guard let self = self else { return }
if self.dataModel.type == 3 { // 港澳通行证
self.dataModel.img_front = url
self.getOCR(url: url, isBack: 0)
if self.dataModel.isCanEdit {
self.getOCR(url: url, isBack: 0)
}
} else {
self.dataModel.img_front = url
......@@ -121,12 +123,17 @@ class YHTravelCertificateUploadCell: UITableViewCell {
view.deleteBlock = {
[weak self] url, index in
guard let self = self else { return }
if !self.dataModel.isCanEdit {
return
}
if self.dataModel.type == 3 { // 港澳通行证
self.dataModel.img_front = ""
} else {
self.dataModel.img_front = ""
self.dataModel.img_back = ""
}
self.dataModel.status = 0
self.updateBlock?()
}
return view
......@@ -138,13 +145,35 @@ class YHTravelCertificateUploadCell: UITableViewCell {
view.urlBlock = {
[weak self] url, index in
guard let self = self else { return }
self.dataModel.img_back = url
self.getOCR(url: url, isBack: 1)
if self.dataModel.type == 3 { // 港澳通行证
self.dataModel.img_back = url
if self.dataModel.isCanEdit {
self.getOCR(url: url, isBack: 1)
}
} else {
self.dataModel.img_front = url
self.dataModel.img_back = url
self.updateBlock?()
}
}
view.deleteBlock = {
[weak self] url, index in
guard let self = self else { return }
self.dataModel.img_back = ""
if !self.dataModel.isCanEdit {
return
}
if self.dataModel.type == 3 { // 港澳通行证
self.dataModel.img_back = ""
} else {
self.dataModel.img_front = ""
self.dataModel.img_back = ""
}
self.dataModel.status = 0
self.updateBlock?()
}
return view
......@@ -171,10 +200,15 @@ class YHTravelCertificateUploadCell: UITableViewCell {
itemView.isNeedShowErrorTips = item.isShowErrorTips
itemView.errorTips = item.errorTips
itemView.detail = item.value
itemView.arrowImgView.isHidden = !self.dataModel.isCanEdit
itemView.clickBlock = {
[weak self] in
guard let self = self else { return }
if !self.dataModel.isCanEdit {
return
}
if item.id == .signDate || item.id == .deadDate {
YHDatePickView.show(type: .yyyymmdd) {
time in
......@@ -234,7 +268,7 @@ class YHTravelCertificateUploadCell: UITableViewCell {
title = "护照信息"
frontTitle = "护照资料页"
} else if model.type == 3 { // 中国居留许可签证
} else if model.type == 2 { // 中国居留许可签证
title = "中国居留许可签证"
frontTitle = "中国居留许可签证"
}
......@@ -260,6 +294,8 @@ class YHTravelCertificateUploadCell: UITableViewCell {
certificateFrontView.frontLabel.text = frontTitle
certificateBackView.frontLabel.text = backTitle
// 证件正反面图片
certificateFrontView.state = !model.isCanEdit
certificateBackView.state = !model.isCanEdit
certificateFrontView.url = model.img_front
certificateBackView.url = model.img_back
......@@ -269,8 +305,9 @@ class YHTravelCertificateUploadCell: UITableViewCell {
// 是否有证件
let hasNoCertiInfo = model.img_front.isEmpty && model.img_back.isEmpty
// 需要显示被拒原因
let isShowReason = (model.isNeedShowRejectReason && !model.rejectReason.isEmpty)
model.isNeedShowRejectReason = (model.status == 2)
let isShowReason = (model.isNeedShowRejectReason && !model.remark.isEmpty)
rejectReasonLabel.text = isShowReason ? "被驳回原因:" + model.remark : ""
rejectReasonLabel.snp.remakeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(-18)
......
......@@ -66,6 +66,12 @@ extension YHTravelDocsPreparationViewModel {
return
}
self.travelDetailModel = resultModel
for item in resultModel.list {
if let item = item {
item.latest_validaty_date = self.travelDetailModel?.latest_validaty_date ?? ""
item.china_travel_latest_validate_date = self.travelDetailModel?.china_travel_latest_validate_date ?? ""
}
}
callBackBlock(true, nil)
} else {
......
......@@ -18,10 +18,13 @@ class YHJsApi: NSObject {
extension YHJsApi {
//4、跳转到 办证3 - 赴港时间预约界面
@objc func gotoAppointCertificateSyn(_ orderID : Int) {
let vc = YHCertificateAppointViewController()
vc.orderId = orderID
delegate?.navigationController?.pushViewController(vc)
@objc func gotoAppointCertificateSyn(_ orderID : String) {
if let orderId = Int(orderID) {
let vc = YHCertificateAppointViewController()
vc.orderId = orderId
delegate?.navigationController?.pushViewController(vc)
}
}
//3、展示图片组
......
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