Commit 6c3ecc6d 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:
  // 修改
  // 续签
  续签文书管理优化测试bug修复
  // 信息确认
parents f40bce3e 0774bbe3
...@@ -254,6 +254,18 @@ extension YHResignDocumentDetailViewController { ...@@ -254,6 +254,18 @@ extension YHResignDocumentDetailViewController {
safariViewController.modalPresentationStyle = .fullScreen safariViewController.modalPresentationStyle = .fullScreen
present(safariViewController, animated: true, completion: nil) present(safariViewController, animated: true, completion: nil)
} }
private func previewUploadedFiles(_ urlStr: String, title: String) {
guard URL(string: urlStr) != nil else {
return
}
YHHUD.show(.progress(message: ""))
viewModel.getRealUsefulUrl(urlStr) { [weak self] resultUrl in
guard let self = self else { return }
YHHUD.hide()
self.previewFileTool.openXLSXRemoteFile(urlString: resultUrl, fileName: title)
}
}
} }
extension YHResignDocumentDetailViewController: UITableViewDelegate, UITableViewDataSource { extension YHResignDocumentDetailViewController: UITableViewDelegate, UITableViewDataSource {
...@@ -327,17 +339,7 @@ extension YHResignDocumentDetailViewController: UITableViewDelegate, UITableView ...@@ -327,17 +339,7 @@ extension YHResignDocumentDetailViewController: UITableViewDelegate, UITableView
self.updateUploadFilesSection() self.updateUploadFilesSection()
} }
} else if editType == .preview { // 预览 } else if editType == .preview { // 预览
guard URL(string: urlStr) != nil else { self.previewUploadedFiles(urlStr, title: title)
return
}
YHHUD.show(.progress(message: ""))
self.viewModel.getPublicImageUrl(urlStr) { [weak self] success, error in
guard let self = self else { return }
YHHUD.hide()
if let success = success {
self.previewFileTool.openXLSXRemoteFile(urlString: success, fileName: "")
}
}
} }
}.show() }.show()
} }
...@@ -390,6 +392,21 @@ extension YHResignDocumentDetailViewController: UITableViewDelegate, UITableView ...@@ -390,6 +392,21 @@ extension YHResignDocumentDetailViewController: UITableViewDelegate, UITableView
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return UIView() return UIView()
} }
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
guard datas.count > indexPath.section else {
return
}
let sectionArr = datas[indexPath.section]
guard sectionArr.count > indexPath.row else {
return
}
let item = sectionArr[indexPath.row]
if case let .uploadFile(title, urlStr, editTypes) = item {
previewUploadedFiles(urlStr, title: title)
}
}
} }
extension YHResignDocumentDetailViewController { extension YHResignDocumentDetailViewController {
...@@ -826,7 +843,7 @@ extension YHResignDocumentDetailViewController { ...@@ -826,7 +843,7 @@ extension YHResignDocumentDetailViewController {
return uploadModel return uploadModel
} }
self.viewModel.uploadSignedDoc(self.docId, type: .upload, docs) { [weak self] success, error in self.viewModel.uploadSignedDoc(self.docId, type: .submit, docs) { [weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
if success { if success {
YHHUD.flash(message: "提交成功") YHHUD.flash(message: "提交成功")
......
...@@ -11,7 +11,6 @@ import AttributedString ...@@ -11,7 +11,6 @@ import AttributedString
class YHResignInfoConfirmModifyViewController: YHBaseViewController { class YHResignInfoConfirmModifyViewController: YHBaseViewController {
var listId: Int = 0
var detailMember = YHResignInfoConfirmFamilyModel() var detailMember = YHResignInfoConfirmFamilyModel()
let viewModel = YHResignInfoConfirmViewModel() let viewModel = YHResignInfoConfirmViewModel()
...@@ -151,7 +150,7 @@ class YHResignInfoConfirmModifyViewController: YHBaseViewController { ...@@ -151,7 +150,7 @@ class YHResignInfoConfirmModifyViewController: YHBaseViewController {
} }
@objc func didConfirmBtnClicked() { @objc func didConfirmBtnClicked() {
self.detailMember.isCheck = true self.detailMember.isNeedCheck = true
self.updateData() self.updateData()
if !checkInfo() { if !checkInfo() {
...@@ -159,8 +158,7 @@ class YHResignInfoConfirmModifyViewController: YHBaseViewController { ...@@ -159,8 +158,7 @@ class YHResignInfoConfirmModifyViewController: YHBaseViewController {
} }
if let detaiParams = self.detailMember.toDictionary() { if let detaiParams = self.detailMember.toDictionary() {
let param:[String: Any] = ["id": self.detailMember.id,
let param:[String: Any] = ["id": listId,
"data": detaiParams] "data": detaiParams]
YHHUD.show(.progress(message: "提交中...")) YHHUD.show(.progress(message: "提交中..."))
viewModel.submitFamilyUpdate(param:param) { viewModel.submitFamilyUpdate(param:param) {
...@@ -198,6 +196,11 @@ extension YHResignInfoConfirmModifyViewController: UITableViewDelegate, UITableV ...@@ -198,6 +196,11 @@ extension YHResignInfoConfirmModifyViewController: UITableViewDelegate, UITableV
cell.titleLabel.attributed.text = title cell.titleLabel.attributed.text = title
cell.modifyBtn.isHidden = false cell.modifyBtn.isHidden = false
cell.isEditState = self.isInfoEditing cell.isEditState = self.isInfoEditing
cell.updateList = {
[weak self] in
guard let self = self else { return }
self.updateData()
}
// 更改编辑状态 // 更改编辑状态
cell.editBlock = { cell.editBlock = {
[weak self] isEdit in [weak self] isEdit in
...@@ -206,7 +209,7 @@ extension YHResignInfoConfirmModifyViewController: UITableViewDelegate, UITableV ...@@ -206,7 +209,7 @@ extension YHResignInfoConfirmModifyViewController: UITableViewDelegate, UITableV
if !checkInfo() { if !checkInfo() {
// 检查信息错误 // 检查信息错误
self.isInfoEditing = true self.isInfoEditing = true
self.detailMember.isCheck = true self.detailMember.isNeedCheck = true
self.updateData() self.updateData()
return return
} }
...@@ -227,6 +230,7 @@ extension YHResignInfoConfirmModifyViewController: UITableViewDelegate, UITableV ...@@ -227,6 +230,7 @@ extension YHResignInfoConfirmModifyViewController: UITableViewDelegate, UITableV
let title: ASAttributedString = .init("递交证件信息", .font(UIFont.PFSC_M(ofSize: 17)),.foreground(UIColor.mainTextColor)) let title: ASAttributedString = .init("递交证件信息", .font(UIFont.PFSC_M(ofSize: 17)),.foreground(UIColor.mainTextColor))
cell.titleLabel.attributed.text = title cell.titleLabel.attributed.text = title
cell.modifyBtn.isHidden = true cell.modifyBtn.isHidden = true
cell.updateList = nil
// 点击有效期不足去处理 // 点击有效期不足去处理
cell.clickUnvalidTime = { cell.clickUnvalidTime = {
[weak self] in [weak self] in
......
...@@ -140,7 +140,7 @@ class YHResignInfoConfirmFamilyModel: SmartCodable { ...@@ -140,7 +140,7 @@ class YHResignInfoConfirmFamilyModel: SmartCodable {
// 自定义属性 // 自定义属性
var relation:Int = YHFamilyMemberRelationType.none.rawValue var relation:Int = YHFamilyMemberRelationType.none.rawValue
// 是否检测编辑字段 // 是否检测编辑字段
var isCheck: Bool = false var isNeedCheck: Bool = false
required init() { required init() {
...@@ -155,7 +155,7 @@ class YHResignInfoConfirmFamilyModel: SmartCodable { ...@@ -155,7 +155,7 @@ class YHResignInfoConfirmFamilyModel: SmartCodable {
} }
func getMarriageStatus(_ marrage: String) -> String { func getMarriageStatus(_ marrage: String) -> String {
let arr = YHSheetPickerView.dataSource[.marriage2]! let arr = YHSheetPickerView.dataSource[.marriage1]!
for item in arr { for item in arr {
if item.index == Int(marrage) { if item.index == Int(marrage) {
return item.title return item.title
......
...@@ -147,6 +147,7 @@ class YHResignFamilyInfoListCell: UITableViewCell { ...@@ -147,6 +147,7 @@ class YHResignFamilyInfoListCell: UITableViewCell {
var selectBirthNation:((Bool)->())? var selectBirthNation:((Bool)->())?
// 姓名更改 // 姓名更改
var updateName:((String)->())? var updateName:((String)->())?
var updateList:(()->())?
var items: [YHResignFamilyInfoItem] = [] var items: [YHResignFamilyInfoItem] = []
...@@ -212,6 +213,7 @@ class YHResignFamilyInfoListCell: UITableViewCell { ...@@ -212,6 +213,7 @@ class YHResignFamilyInfoListCell: UITableViewCell {
make.top.equalTo(18) make.top.equalTo(18)
make.left.equalTo(18) make.left.equalTo(18)
make.right.equalTo(-18) make.right.equalTo(-18)
make.height.equalTo(24.0)
} }
modifyBtn.snp.makeConstraints { make in modifyBtn.snp.makeConstraints { make in
...@@ -242,24 +244,37 @@ class YHResignFamilyInfoListCell: UITableViewCell { ...@@ -242,24 +244,37 @@ class YHResignFamilyInfoListCell: UITableViewCell {
if let itemView = itemView as? YHResignInfoItemView { if let itemView = itemView as? YHResignInfoItemView {
itemsContentView.addSubview(itemView) itemsContentView.addSubview(itemView)
itemView.updateItem(item, familyInfo: familyInfo) itemView.updateItem(item, familyInfo: familyInfo)
itemView.updateName = { itemView.updateList = {
[weak self] text in [weak self] in
guard let self = self else { return } guard let self = self else { return }
self.updateList?()
for subView in self.itemsContentView.subviews { }
if subView is YHResignInfoItemView { // itemView.updateName = {
let targetView = subView as! YHResignInfoItemView // [weak self] text in
if targetView.item.id == .firstName { // guard let self = self else { return }
targetView.item.value = self.familyInfo.familyName // for subView in self.itemsContentView.subviews {
targetView.updateItem(targetView.item, familyInfo: self.familyInfo) // if subView is YHResignInfoItemView {
} // let targetView = subView as! YHResignInfoItemView
if targetView.item.id == .lastName { // if targetView.item.id == .firstName {
targetView.item.value = self.familyInfo.givenName // targetView.item.value = self.familyInfo.familyName
targetView.updateItem(targetView.item, familyInfo: self.familyInfo) // }
} // if targetView.item.id == .lastName {
} // targetView.item.value = self.familyInfo.givenName
} // targetView.updateItem(targetView.item, familyInfo: self.familyInfo)
} // }
// targetView.updateItem(targetView.item, familyInfo: self.familyInfo)
// }
// }
// self.itemsContentView.snp.updateConstraints { make in
// make.top.equalTo(self.titleLabel.snp.bottom).offset(12)
// make.left.equalTo(18)
// make.right.equalTo(-18)
// make.bottom.equalTo(0)
// }
// self.setNeedsLayout()
// self.layoutIfNeeded()
//
// }
} else if let itemView = itemView as? YHResignInfoValidTimeItemView { } else if let itemView = itemView as? YHResignInfoValidTimeItemView {
itemsContentView.addSubview(itemView) itemsContentView.addSubview(itemView)
itemView.updateItem(item, familyInfo: familyInfo) itemView.updateItem(item, familyInfo: familyInfo)
......
...@@ -19,6 +19,7 @@ class YHResignInfoItemView: UIView { ...@@ -19,6 +19,7 @@ class YHResignInfoItemView: UIView {
var faimilyInfo = YHResignInfoConfirmFamilyModel() var faimilyInfo = YHResignInfoConfirmFamilyModel()
// 姓名更改 // 姓名更改
var updateName:((String)->())? var updateName:((String)->())?
var updateList:(()->())?
let rightBtnWidth = 22.0 let rightBtnWidth = 22.0
let viewModel = YHResignInfoConfirmViewModel() let viewModel = YHResignInfoConfirmViewModel()
...@@ -173,7 +174,7 @@ class YHResignInfoItemView: UIView { ...@@ -173,7 +174,7 @@ class YHResignInfoItemView: UIView {
make.top.equalTo(12) make.top.equalTo(12)
make.right.equalTo(-18) make.right.equalTo(-18)
make.bottom.equalTo(-12) make.bottom.equalTo(-12)
make.height.greaterThanOrEqualTo(20) make.height.greaterThanOrEqualTo(17)
} }
errorTipsLabel.snp.makeConstraints { make in errorTipsLabel.snp.makeConstraints { make in
...@@ -199,13 +200,13 @@ class YHResignInfoItemView: UIView { ...@@ -199,13 +200,13 @@ class YHResignInfoItemView: UIView {
UIApplication.shared.yhKeyWindow()?.endEditing(true) UIApplication.shared.yhKeyWindow()?.endEditing(true)
if item.id == .marriage { // 婚姻状况 if item.id == .marriage { // 婚姻状况
YHSheetPickerView.show(type:.marriage2, selectTitle: self.faimilyInfo.getMarriageState()) { YHSheetPickerView.show(type:.marriage1, selectTitle: self.faimilyInfo.getMarriageState()) {
[weak self] item in [weak self] item in
guard let self = self else { return } guard let self = self else { return }
self.item.value = item.title self.item.value = item.title
self.detailLabel.text = item.title self.detailLabel.text = item.title
self.faimilyInfo.married = "\(item.index)" self.faimilyInfo.married = "\(item.index)"
self.updateItem(self.item, familyInfo: self.faimilyInfo) self.updateList?()
} }
} else if item.id == .declareNation { // 申报国籍 } else if item.id == .declareNation { // 申报国籍
...@@ -214,7 +215,8 @@ class YHResignInfoItemView: UIView { ...@@ -214,7 +215,8 @@ class YHResignInfoItemView: UIView {
self.item.value = country self.item.value = country
self.detailLabel.text = country self.detailLabel.text = country
self.faimilyInfo.nationality = country self.faimilyInfo.nationality = country
self.updateItem(self.item, familyInfo: self.faimilyInfo) self.updateList?()
} }
UIViewController.current?.navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
} }
...@@ -245,8 +247,8 @@ class YHResignInfoItemView: UIView { ...@@ -245,8 +247,8 @@ class YHResignInfoItemView: UIView {
textField.keyboardType = .asciiCapable // 英文键盘 textField.keyboardType = .asciiCapable // 英文键盘
} }
let isSelectSheet = item.isEditMode && item.action == .select let isSheetEdit = item.isEditMode && item.action == .select
clickRowBtn.isHidden = !isSelectSheet clickRowBtn.isHidden = !isSheetEdit
textField.text = item.value textField.text = item.value
rightBtn.isHidden = !item.isEditMode rightBtn.isHidden = !item.isEditMode
...@@ -264,7 +266,7 @@ class YHResignInfoItemView: UIView { ...@@ -264,7 +266,7 @@ class YHResignInfoItemView: UIView {
make.top.equalTo(16) make.top.equalTo(16)
make.left.equalTo(titleLabel.snp.right) make.left.equalTo(titleLabel.snp.right)
make.right.equalTo(item.isEditMode ? -18.0-rightBtnWidth : 0) make.right.equalTo(item.isEditMode ? -18.0-rightBtnWidth : 0)
if isTextEdit { if isTextEdit || isSheetEdit {
make.height.equalTo(20) make.height.equalTo(20)
} else { } else {
make.height.greaterThanOrEqualTo(20) make.height.greaterThanOrEqualTo(20)
...@@ -280,7 +282,7 @@ class YHResignInfoItemView: UIView { ...@@ -280,7 +282,7 @@ class YHResignInfoItemView: UIView {
} }
} }
let isShowTips = (familyInfo.isCheck && !item.tips.isEmpty) let isShowTips = (familyInfo.isNeedCheck && !item.tips.isEmpty)
errorTipsLabel.text = item.tips errorTipsLabel.text = item.tips
errorTipsLabel.isHidden = !isShowTips errorTipsLabel.isHidden = !isShowTips
errorTipsLabel.snp.remakeConstraints { make in errorTipsLabel.snp.remakeConstraints { make in
...@@ -292,6 +294,9 @@ class YHResignInfoItemView: UIView { ...@@ -292,6 +294,9 @@ class YHResignInfoItemView: UIView {
make.top.equalTo(previousContentView.snp.bottom).offset(isShowTips ? 6 : 0) make.top.equalTo(previousContentView.snp.bottom).offset(isShowTips ? 6 : 0)
make.bottom.equalTo(-16) make.bottom.equalTo(-16)
} }
self.setNeedsLayout()
self.layoutIfNeeded()
} }
} }
...@@ -302,6 +307,7 @@ extension YHResignInfoItemView: UITextFieldDelegate { ...@@ -302,6 +307,7 @@ extension YHResignInfoItemView: UITextFieldDelegate {
var newText = (textField.text! as NSString).replacingCharacters(in: range, with: string) var newText = (textField.text! as NSString).replacingCharacters(in: range, with: string)
printLog("\(newText)") printLog("\(newText)")
if self.item.id == .mainApplicantName || self.item.id == .spouseName || self.item.id == .childName { if self.item.id == .mainApplicantName || self.item.id == .spouseName || self.item.id == .childName {
if newText.count > 30 { // 上限30个字符 if newText.count > 30 { // 上限30个字符
newText = String(newText.prefix(30)) newText = String(newText.prefix(30))
...@@ -314,6 +320,12 @@ extension YHResignInfoItemView: UITextFieldDelegate { ...@@ -314,6 +320,12 @@ extension YHResignInfoItemView: UITextFieldDelegate {
debounceTimer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: false) { [weak self] _ in debounceTimer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: false) { [weak self] _ in
self?.updateNamePinYin() self?.updateNamePinYin()
} }
} else {
// 刷新文字输入后的布局
debounceTimer?.invalidate()
debounceTimer = Timer.scheduledTimer(withTimeInterval: 1.25, repeats: false) { [weak self] _ in
self?.updateList?()
}
} }
if self.item.id == .occupation { // 职业 if self.item.id == .occupation { // 职业
...@@ -339,15 +351,17 @@ extension YHResignInfoItemView: UITextFieldDelegate { ...@@ -339,15 +351,17 @@ extension YHResignInfoItemView: UITextFieldDelegate {
@objc func textFieldChanged(textField:UITextField) { @objc func textFieldChanged(textField:UITextField) {
if let text = textField.text { if let text = textField.text {
self.updateText(text) self.updateText(text)
self.faimilyInfo.isCheck = false
} else { } else {
self.updateText("") self.updateText("")
} }
self.updateItem(self.item, familyInfo: self.faimilyInfo) self.updateItem(self.item, familyInfo: self.faimilyInfo)
} }
func textFieldDidEndEditing(_ textField: UITextField) {
self.updateList?()
}
func updateNamePinYin() { func updateNamePinYin() {
// 编辑姓名 // 编辑姓名
if self.item.id == .mainApplicantName || self.item.id == .spouseName || self.item.id == .childName { if self.item.id == .mainApplicantName || self.item.id == .spouseName || self.item.id == .childName {
...@@ -356,7 +370,7 @@ extension YHResignInfoItemView: UITextFieldDelegate { ...@@ -356,7 +370,7 @@ extension YHResignInfoItemView: UITextFieldDelegate {
if text.isEmpty { if text.isEmpty {
self.faimilyInfo.familyName = "" self.faimilyInfo.familyName = ""
self.faimilyInfo.givenName = "" self.faimilyInfo.givenName = ""
updateName?("") self.updateList?()
return return
} }
...@@ -367,7 +381,8 @@ extension YHResignInfoItemView: UITextFieldDelegate { ...@@ -367,7 +381,8 @@ extension YHResignInfoItemView: UITextFieldDelegate {
guard let self = self else { return } guard let self = self else { return }
self.faimilyInfo.familyName = firstNamePinYin self.faimilyInfo.familyName = firstNamePinYin
self.faimilyInfo.givenName = lastNamePinYin self.faimilyInfo.givenName = lastNamePinYin
updateName?(text) self.updateList?()
} }
} }
} }
...@@ -378,8 +393,15 @@ extension YHResignInfoItemView: UITextFieldDelegate { ...@@ -378,8 +393,15 @@ extension YHResignInfoItemView: UITextFieldDelegate {
if self.item.id == .mainApplicantName || self.item.id == .spouseName || self.item.id == .childName { if self.item.id == .mainApplicantName || self.item.id == .spouseName || self.item.id == .childName {
self.faimilyInfo.name = newText self.faimilyInfo.name = newText
if newText.isEmpty {
self.faimilyInfo.familyName = ""
self.faimilyInfo.givenName = ""
self.updateList?()
}
return
}
} else if self.item.id == .firstName { if self.item.id == .firstName {
self.faimilyInfo.familyName = newText.uppercased() self.faimilyInfo.familyName = newText.uppercased()
self.item.value = newText.uppercased() self.item.value = newText.uppercased()
......
...@@ -212,15 +212,6 @@ class YHSheetPickerView: UIView { ...@@ -212,15 +212,6 @@ class YHSheetPickerView: UIView {
], ],
// 婚姻
.marriage2:
[YHSheetPickerViewItem(title:"已婚".local, index:1),
YHSheetPickerViewItem(title:"未婚".local, index:2),
YHSheetPickerViewItem(title:"离婚".local, index:3),
YHSheetPickerViewItem(title:"分居".local, index:4),
YHSheetPickerViewItem(title:"丧偶".local, index:5),
],
// 教育 // 教育
.educationStyle: .educationStyle:
...@@ -414,8 +405,6 @@ extension YHSheetPickerView { ...@@ -414,8 +405,6 @@ extension YHSheetPickerView {
return "选择婚姻状况" return "选择婚姻状况"
case .marriage1: case .marriage1:
return "选择婚姻状况" return "选择婚姻状况"
case .marriage2:
return "选择婚姻状况"
case .educationStyle: case .educationStyle:
return "选择授课形式" return "选择授课形式"
case .occupation: case .occupation:
......
...@@ -22,9 +22,6 @@ enum YHSheetPickerViewType: Int { ...@@ -22,9 +22,6 @@ enum YHSheetPickerViewType: Int {
case marriageText case marriageText
// 婚姻(index有效) 有再婚选项 // 婚姻(index有效) 有再婚选项
case marriage1 case marriage1
// 婚姻(index有效) 无再婚选项
case marriage2
// 授课形式 // 授课形式
case educationStyle case educationStyle
// 职业 // 职业
......
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