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