Commit b517d29e 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:
  state 状态
  已签署状态的签署逻辑
  已经驳回状态UI  status 显示逻辑
parents 7f187dee 2a7477fb
......@@ -21,6 +21,7 @@
044867B62BA1A03800DFAD4A /* YHCertificateFilterItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044867B52BA1A03800DFAD4A /* YHCertificateFilterItemCell.swift */; };
044867B82BA1C75700DFAD4A /* YHCertificateUploadFailTipsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044867B72BA1C75700DFAD4A /* YHCertificateUploadFailTipsView.swift */; };
044CF8D42BB6BCF700008CE8 /* YHSignatureUploadTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044CF8D32BB6BCF700008CE8 /* YHSignatureUploadTableViewCell.swift */; };
044CF8D62BBA57DC00008CE8 /* YHFailPromptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 044CF8D52BBA57DC00008CE8 /* YHFailPromptView.swift */; };
045EEE792B9F171A0022A143 /* YHPreviewViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045EED9A2B9F171A0022A143 /* YHPreviewViewModel.swift */; };
045EEE7A2B9F171A0022A143 /* YHPreviewForOtherInfoModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045EED9C2B9F171A0022A143 /* YHPreviewForOtherInfoModel.swift */; };
045EEE7B2B9F171A0022A143 /* YHPersonInfoCellModel2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 045EED9D2B9F171A0022A143 /* YHPersonInfoCellModel2.swift */; };
......@@ -425,6 +426,7 @@
044867B52BA1A03800DFAD4A /* YHCertificateFilterItemCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateFilterItemCell.swift; sourceTree = "<group>"; };
044867B72BA1C75700DFAD4A /* YHCertificateUploadFailTipsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateUploadFailTipsView.swift; sourceTree = "<group>"; };
044CF8D32BB6BCF700008CE8 /* YHSignatureUploadTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSignatureUploadTableViewCell.swift; sourceTree = "<group>"; };
044CF8D52BBA57DC00008CE8 /* YHFailPromptView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHFailPromptView.swift; sourceTree = "<group>"; };
045EED9A2B9F171A0022A143 /* YHPreviewViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHPreviewViewModel.swift; sourceTree = "<group>"; };
045EED9C2B9F171A0022A143 /* YHPreviewForOtherInfoModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHPreviewForOtherInfoModel.swift; sourceTree = "<group>"; };
045EED9D2B9F171A0022A143 /* YHPersonInfoCellModel2.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHPersonInfoCellModel2.swift; sourceTree = "<group>"; };
......@@ -1661,6 +1663,7 @@
A5DE0D3B2BB9016200976FE1 /* YHEmailInputAlertView.swift */,
A5D5ADEE2BB90FBB0039FA6B /* YHCheckEamilAlertView.swift */,
A582B2402BB95998009D098C /* YHHKPlanTipsCell.swift */,
044CF8D52BBA57DC00008CE8 /* YHFailPromptView.swift */,
A582B2422BB95E20009D098C /* YHHKPlanCell.swift */,
);
path = V;
......@@ -2611,6 +2614,7 @@
A5EF21312BA6DF94005027E6 /* YHMineSchemeViewController.swift in Sources */,
045EEE872B9F171A0022A143 /* YHPreviewControllerHoldViewController.swift in Sources */,
045EEF172B9F171A0022A143 /* YHSelectCountryViewController.swift in Sources */,
044CF8D62BBA57DC00008CE8 /* YHFailPromptView.swift in Sources */,
A5ACE9562B4564F7002C94D2 /* YHBouncesContentView.swift in Sources */,
A554A5122B99715000EA5973 /* YHConstantArrayData.swift in Sources */,
045EEE962B9F171A0022A143 /* YHPreviewInfoCertificatePictureItemsView.swift in Sources */,
......
......@@ -16,10 +16,13 @@ class YHMyDocumentsDetailViewController: YHBaseViewController {
var bottomView: UIView!
var bottomButton: UIButton!
var tableView: UITableView!
var promptView: YHFailPromptView!
var dataSource: [YHWorkItemListModel]?
var viewModel: YHMyDocumentsDetailViewModel!
var id: Int = 0
var oldUrl: String?
var type: Int = 0
var isSign: Bool = false
lazy var blackMaskView: UIView = {
let view = UIView(frame:UIScreen.main.bounds)
......@@ -59,6 +62,7 @@ class YHMyDocumentsDetailViewController: YHBaseViewController {
func getData() {
viewModel.requestDocumentsDetail("\(id)", callBackBlock: {[weak self] success, error in
guard let self = self else { return }
if success {
if self.viewModel.mainModel?.prospectus.id != 0 {
self.stepView.snp.remakeConstraints { make in
make.top.equalTo(k_Height_NavigationtBarAndStatuBar)
......@@ -71,18 +75,38 @@ class YHMyDocumentsDetailViewController: YHBaseViewController {
self.stepView.currentIndex = 0
self.bottomView.isHidden = true
} else {
let state = self.viewModel.mainModel?.writing_document.doc_sign.status
let state = self.viewModel.mainModel?.writing_document.doc_sign.status ?? 0
// 0-待上传,1-未发送, 2-发送中,3-已发送,4-已签收,5-审核通过,6-驳回
if state == 0 || state == 1 || state == 2 {
} else if state == 3 || state == 4 || state == 5 {
self.type = state
if state == 0 || state == 1 || state == 2 || state == 3 {
self.promptView.isHidden = true
self.bottomButton.isEnabled = true
self.bottomView.isHidden = false
} else if state == 4 {
self.promptView.isHidden = true
self.bottomButton.isEnabled = false
self.bottomView.isHidden = false
} else if state == 5 {
self.promptView.isHidden = true
self.bottomView.isHidden = true
self.bottomButton.isEnabled = true
} else {
self.promptView.isHidden = false
self.promptView.setPrompt(self.viewModel.mainModel?.writing_document.doc_sign.audit_opinion ?? "")
self.bottomButton.isEnabled = true
self.bottomView.isHidden = false
}
self.stepView.currentIndex = 1
}
self.tableView.reloadData()
} else {
YHHUD.flash(message: error?.errorMsg ?? "")
}
})
viewModel?.requestSignCallBack("\(self.viewModel.mainModel?.writing_document.doc_sign.id ?? 0)", callBackBlock: {[weak self] success, error in
guard let self = self else { return }
self.isSign = success
})
}
......@@ -125,9 +149,20 @@ class YHMyDocumentsDetailViewController: YHBaseViewController {
tableView.snp.makeConstraints { make in
make.top.equalTo(k_Height_NavigationtBarAndStatuBar + YHStepView.height)
make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 64)
make.left.right.bottom.equalTo(view)
make.left.right.equalTo(view)
}
promptView = {
let view = YHFailPromptView()
view.isHidden = true
return view
}()
view.addSubview(promptView)
promptView.snp.makeConstraints { make in
make.height.equalTo(35)
make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 64)
make.left.right.equalTo(view)
}
bottomView = {
let bottom = UIView()
bottom.backgroundColor = .white
......@@ -385,6 +420,20 @@ extension YHMyDocumentsDetailViewController: UITableViewDelegate, UITableViewDat
cell.block = { [weak self] type in
guard let self = self else { return }
if type == .sign {
if self.isSign {
self.viewModel.requestSignatureLook("\(self.viewModel.mainModel?.writing_document.doc_sign.id ?? 0)") {[weak self] success, error in
guard let self = self else { return }
if success {
let url = URL(string: self.viewModel.pageUrl)!
let safariViewController = SFSafariViewController(url: url)
safariViewController.dismissButtonStyle = .close
safariViewController.delegate = self
self.navigationController?.pushViewController(safariViewController)
} else {
YHHUD.flash(message: error?.errorMsg ?? "")
}
}
} else {
self.viewModel.requestSignaturePageURL("\(self.viewModel.mainModel?.writing_document.doc_sign.id ?? 0)", callBackBlock: {[weak self] success, error in
guard let self = self else { return }
if error?.errorCode == 1008611 {
......@@ -411,6 +460,7 @@ extension YHMyDocumentsDetailViewController: UITableViewDelegate, UITableViewDat
}
})
}
}
if type == .look {
self.viewModel.requestSignatureLook("\(self.viewModel.mainModel?.writing_document.doc_sign.id ?? 0)") {[weak self] success, error in
......@@ -446,6 +496,7 @@ extension YHMyDocumentsDetailViewController: UITableViewDelegate, UITableViewDat
return cell
} else {
let cell = tableView.dequeueReusableCell(withClass: YHDocumentUploadTableViewCell.self)
cell.type = self.type
cell.dataSource = self.viewModel.mainModel
cell.backgroundColor = .clear
cell.contentView.backgroundColor = .clear
......@@ -614,10 +665,7 @@ extension YHMyDocumentsDetailViewController: UITableViewDelegate, UITableViewDat
extension YHMyDocumentsDetailViewController: SFSafariViewControllerDelegate {
// MARK: 点击左上角的完成
func safariViewControllerDidFinish(_ controller: SFSafariViewController) {
viewModel?.requestSignCallBack("\(self.viewModel.mainModel?.writing_document.doc_sign.id ?? 0)", callBackBlock: {[weak self] success, error in
guard let self = self else { return }
controller.navigationController?.popViewController()
})
}
// MARK: 加载完成
......
......@@ -57,6 +57,7 @@ class YHMyDocumentWritingDocumentDocSignModel: YHBaseModel {
var wx_electronically_signed: Int = 0
var doc_return_manual: [String] = []
var doc_type_name: String = ""
var audit_opinion: String = ""
}
class YHMyDocumentWritingDocumentSupplementListModel: YHBaseModel {
......
......@@ -17,6 +17,7 @@ class YHDocumentFileItemView: UIView {
var centerButton: UIButton!
var index: Int = 0
var docType: Int = 0
var type: Int = 0
var dataSource: String? {
didSet {
updateAllViews()
......@@ -141,10 +142,15 @@ class YHDocumentFileItemView: UIView {
}
@objc func deleteClick() {
let items = [YHCertificateEditItem(type:.preview, title:"预览"),
var items = [YHCertificateEditItem(type:.preview, title:"预览"),
YHCertificateEditItem(type:.reupload, title:"重传"),
YHCertificateEditItem(type:.delete, title:"删除"),
YHCertificateEditItem(type:.cancel, title:"取消")]
if type == 4 || type == 5 {
items = [YHCertificateEditItem(type:.preview, title:"预览"),
YHCertificateEditItem(type:.cancel, title:"取消")]
}
YHCertificateEditSheetView.sheetView(items:items) {
[weak self] editType in
guard let self = self else { return }
......
......@@ -24,6 +24,11 @@ class YHDocumentUploadTableViewCell: UITableViewCell {
}
}
var type: Int = 0 {
didSet {
updateAddView()
}
}
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
......@@ -144,6 +149,7 @@ class YHDocumentUploadTableViewCell: UITableViewCell {
let h = 70
let itemView = YHDocumentFileItemView()
itemView.index = i
itemView.type = type
itemView.docType = dataSource.writing_document.doc_sign.doc_type
itemView.dataSource = data
itemView.itemBlock = {[weak self] type, index in
......@@ -162,5 +168,21 @@ class YHDocumentUploadTableViewCell: UITableViewCell {
y = y + h
}
}
func updateAddView() {
if type == 4 {
self.bottomView.alpha = 0.4
self.bottomView.addBtn.isEnabled = false
}
if type == 5 {
self.bottomView.isHidden = true
mainItemView.snp.remakeConstraints { make in
make.left.right.equalToSuperview()
make.bottom.equalTo(-92)
make.top.equalTo(52)
}
}
}
}
//
// YHFailPromptView.swift
// galaxy
//
// Created by EDY on 2024/4/1.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHFailPromptView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
initView()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
lazy var alertImageView : UIImageView = {
let button = UIImageView()
button.image = UIImage(named: "fail_prompt_image")
return button
}()
private lazy var titleLable : UILabel = {
let lable0 = UILabel(text: "222222222222222")
lable0.textColor = UIColor.failColor
lable0.font = UIFont.PFSC_R(ofSize: 12)
return lable0
}()
func setPrompt(_ prompt: String) {
titleLable.text = prompt
}
}
private extension YHFailPromptView {
func initView() {
backgroundColor = UIColor(hex: 0xfeeded)
addSubview(alertImageView)
alertImageView.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.left.equalTo(18)
make.width.height.equalTo(16)
}
addSubview(titleLable)
titleLable.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.left.equalTo(38)
make.top.bottom.equalToSuperview()
}
}
}
......@@ -22,7 +22,7 @@ class YHMyDocumentsDetailViewModel: YHBaseViewModel {
super.init()
}
func requestDocumentsDetail(_ supplementId: String, callBackBlock:@escaping (_ success: Bool?, _ error: YHErrorModel?)->()) {
func requestDocumentsDetail(_ supplementId: String, callBackBlock:@escaping (_ success: Bool, _ error: YHErrorModel?)->()) {
let params: [String : Any] = ["supplement_id": supplementId]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Documents.detailApi
let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in
......@@ -242,7 +242,7 @@ class YHMyDocumentsDetailViewModel: YHBaseViewModel {
}
}
func requestSignCallBack(_ id: String, callBackBlock:@escaping (_ success: Bool?, _ error: YHErrorModel?)->()) {
func requestSignCallBack(_ id: String, callBackBlock:@escaping (_ success: Bool, _ error: YHErrorModel?)->()) {
// let params: [String : Any] = ["order_id": orderId]
let params: [String : Any] = ["id": id]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Signature.callBack
......
......@@ -14,11 +14,13 @@ class YHMySignatureDetailViewController: YHBaseViewController {
var bottomView: UIView!
var bottomButton: UIButton!
var tableView: UITableView!
var promptView: YHFailPromptView!
var dataSource: [YHWorkItemListModel]?
var viewModel: YHMySignatureDetailViewModel!
var id: Int = 0
var oldUrl: String?
var type: Int = 0
var isSign: Bool = false
lazy var previewFileTool:YHFilePreviewTool = {
let tool = YHFilePreviewTool(targetVC: self)
return tool
......@@ -57,16 +59,37 @@ class YHMySignatureDetailViewController: YHBaseViewController {
func getData() {
viewModel.requestSignatureDetail("\(id)", callBackBlock: {[weak self] success, error in
guard let self = self else { return }
let state = self.viewModel.mainModel?.status
if success {
let state = self.viewModel.mainModel?.status ?? 0
// 0-待上传,1-未发送, 2-发送中,3-已发送,4-已签收,5-审核通过,6-驳回
if state == 0 || state == 1 || state == 2 {
} else if state == 3 || state == 4 || state == 5 {
self.type = state
if state == 0 || state == 1 || state == 2 || state == 3 {
self.promptView.isHidden = true
self.bottomButton.isEnabled = true
self.bottomView.isHidden = false
} else if state == 4 {
self.promptView.isHidden = true
self.bottomButton.isEnabled = false
self.bottomView.isHidden = false
} else if state == 5 {
self.promptView.isHidden = true
self.bottomView.isHidden = true
self.bottomButton.isEnabled = true
} else {
self.promptView.isHidden = false
self.promptView.setPrompt(self.viewModel.mainModel?.audit_opinion ?? "")
self.bottomButton.isEnabled = true
self.bottomView.isHidden = false
}
self.tableView.reloadData()
} else {
YHHUD.flash(message: error?.errorMsg ?? "")
}
})
viewModel?.requestSignCallBack("\(self.id)", callBackBlock: {[weak self] success, error in
guard let self = self else { return }
self.isSign = success
})
}
......@@ -99,6 +122,18 @@ class YHMySignatureDetailViewController: YHBaseViewController {
make.left.right.bottom.equalTo(view)
}
promptView = {
let view = YHFailPromptView()
view.isHidden = true
return view
}()
view.addSubview(promptView)
promptView.snp.makeConstraints { make in
make.height.equalTo(35)
make.bottom.equalTo(-k_Height_safeAreaInsetsBottom() - 64)
make.left.right.equalTo(view)
}
bottomView = {
let bottom = UIView()
bottom.backgroundColor = .white
......@@ -290,6 +325,20 @@ extension YHMySignatureDetailViewController: UITableViewDelegate, UITableViewDat
cell.block = { [weak self] type in
guard let self = self else { return }
if type == .sign {
if self.isSign {
self.viewModel.requestSignatureLook("\(self.id)") {[weak self] success, error in
guard let self = self else { return }
if success {
let url = URL(string: self.viewModel.pageUrl)!
let safariViewController = SFSafariViewController(url: url)
safariViewController.dismissButtonStyle = .close
safariViewController.delegate = self
self.navigationController?.pushViewController(safariViewController)
} else {
YHHUD.flash(message: error?.errorMsg ?? "")
}
}
} else {
self.viewModel.requestSignaturePageURL("\(self.id)", callBackBlock: {[weak self] success, error in
guard let self = self else { return }
if error?.errorCode == 1008611 {
......@@ -316,6 +365,7 @@ extension YHMySignatureDetailViewController: UITableViewDelegate, UITableViewDat
}
})
}
}
if type == .look {
self.viewModel.requestSignatureLook("\(self.id)") {[weak self] success, error in
......@@ -351,6 +401,7 @@ extension YHMySignatureDetailViewController: UITableViewDelegate, UITableViewDat
return cell
} else {
let cell = tableView.dequeueReusableCell(withClass: YHSignatureUploadTableViewCell.self)
cell.type = self.type
cell.dataSource = self.viewModel.mainModel
cell.backgroundColor = .clear
cell.contentView.backgroundColor = .clear
......@@ -486,9 +537,13 @@ extension YHMySignatureDetailViewController: UITableViewDelegate, UITableViewDat
return 180
} else {
guard let count = self.viewModel.mainModel?.doc_return_manual.count else { return CGFloat(221) }
if self.type == 5 {
return CGFloat(176 + count * 71)
} else {
return CGFloat(221 + count * 71)
}
}
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
}
......@@ -514,10 +569,7 @@ extension YHMySignatureDetailViewController: UITableViewDelegate, UITableViewDat
extension YHMySignatureDetailViewController: SFSafariViewControllerDelegate {
// MARK: 点击左上角的完成
func safariViewControllerDidFinish(_ controller: SFSafariViewController) {
viewModel?.requestSignCallBack("\(self.id)", callBackBlock: {[weak self] success, error in
guard let self = self else { return }
controller.navigationController?.popViewController()
})
}
// MARK: 加载完成
......
......@@ -19,6 +19,7 @@ class YHMySignatureDetailModel: YHBaseModel {
var is_upload: Int = 0
var is_show_button: Bool = false
var status: Int = 0
var audit_opinion: String = ""
}
class YHMySignatureURLModel: YHBaseModel {
......
......@@ -24,6 +24,11 @@ class YHSignatureUploadTableViewCell: UITableViewCell {
}
}
var type: Int = 0 {
didSet {
updateAddView()
}
}
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
......@@ -145,6 +150,7 @@ class YHSignatureUploadTableViewCell: UITableViewCell {
let itemView = YHDocumentFileItemView()
itemView.index = i
itemView.docType = dataSource.doc_type
itemView.type = type
itemView.dataSource = data
itemView.itemBlock = {[weak self] type, index in
guard let self = self else { return }
......@@ -162,5 +168,21 @@ class YHSignatureUploadTableViewCell: UITableViewCell {
y = y + h
}
}
func updateAddView() {
if type == 4 {
self.bottomView.alpha = 0.4
self.bottomView.addBtn.isEnabled = false
}
if type == 5 {
self.bottomView.isHidden = true
mainItemView.snp.remakeConstraints { make in
make.left.right.equalToSuperview()
make.bottom.equalTo(-92)
make.top.equalTo(52)
}
}
}
}
......@@ -17,7 +17,7 @@ class YHMySignatureDetailViewModel: YHBaseViewModel {
super.init()
}
func requestSignatureDetail(_ id: String, callBackBlock:@escaping (_ success: Bool?, _ error: YHErrorModel?)->()) {
func requestSignatureDetail(_ id: String, callBackBlock:@escaping (_ success: Bool, _ error: YHErrorModel?)->()) {
// let params: [String : Any] = ["order_id": orderId]
let params: [String : Any] = ["id": id]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Signature.detail
......@@ -88,7 +88,7 @@ class YHMySignatureDetailViewModel: YHBaseViewModel {
}
}
func requestSignCallBack(_ id: String, callBackBlock:@escaping (_ success: Bool?, _ error: YHErrorModel?)->()) {
func requestSignCallBack(_ id: String, callBackBlock:@escaping (_ success: Bool, _ error: YHErrorModel?)->()) {
// let params: [String : Any] = ["order_id": orderId]
let params: [String : Any] = ["id": id]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Signature.callBack
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "fail_prompt_image@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "fail_prompt_image@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
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