Commit 898b81c6 authored by David黄金龙's avatar David黄金龙

处理电子签证 接口

parent e66c0eb5
......@@ -655,6 +655,8 @@
A5CA3F582C749E0100EB22F5 /* YHUploadCertificateDateItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CA3F572C749E0100EB22F5 /* YHUploadCertificateDateItem.swift */; };
A5CA3F5A2C74B64A00EB22F5 /* YHSmallWhiteNoteTemplateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CA3F592C74B64A00EB22F5 /* YHSmallWhiteNoteTemplateView.swift */; };
A5CA3F5C2C74C4C200EB22F5 /* YHHKCardTemplateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CA3F5B2C74C4C200EB22F5 /* YHHKCardTemplateView.swift */; };
A5CA3F5F2C74D59B00EB22F5 /* YHUploadCertificateViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CA3F5E2C74D59B00EB22F5 /* YHUploadCertificateViewModel.swift */; };
A5CA3F622C74D8BD00EB22F5 /* YHVisaPaymentListModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CA3F612C74D8BD00EB22F5 /* YHVisaPaymentListModel.swift */; };
A5D001212BAA9D99001F003C /* YHChoiceButtonHoldView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D001202BAA9D99001F003C /* YHChoiceButtonHoldView.swift */; };
A5D0012A2BABC84A001F003C /* YHFileListHeaerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D001272BABC84A001F003C /* YHFileListHeaerView.swift */; };
A5D0012C2BABC84A001F003C /* YHFileListBottomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D001292BABC84A001F003C /* YHFileListBottomView.swift */; };
......@@ -1387,6 +1389,8 @@
A5CA3F572C749E0100EB22F5 /* YHUploadCertificateDateItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHUploadCertificateDateItem.swift; sourceTree = "<group>"; };
A5CA3F592C74B64A00EB22F5 /* YHSmallWhiteNoteTemplateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSmallWhiteNoteTemplateView.swift; sourceTree = "<group>"; };
A5CA3F5B2C74C4C200EB22F5 /* YHHKCardTemplateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHKCardTemplateView.swift; sourceTree = "<group>"; };
A5CA3F5E2C74D59B00EB22F5 /* YHUploadCertificateViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHUploadCertificateViewModel.swift; sourceTree = "<group>"; };
A5CA3F612C74D8BD00EB22F5 /* YHVisaPaymentListModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHVisaPaymentListModel.swift; sourceTree = "<group>"; };
A5D001202BAA9D99001F003C /* YHChoiceButtonHoldView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHChoiceButtonHoldView.swift; sourceTree = "<group>"; };
A5D001272BABC84A001F003C /* YHFileListHeaerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHFileListHeaerView.swift; sourceTree = "<group>"; };
A5D001292BABC84A001F003C /* YHFileListBottomView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YHFileListBottomView.swift; sourceTree = "<group>"; };
......@@ -3246,6 +3250,8 @@
A57BFDE02C732A4700A78E51 /* VisaPayment(4电子签字缴费) */ = {
isa = PBXGroup;
children = (
A5CA3F642C7586C500EB22F5 /* M */,
A5CA3F632C7586BE00EB22F5 /* VM */,
A57BFDE22C732AA700A78E51 /* V */,
A57BFDE12C732A8300A78E51 /* C */,
);
......@@ -3647,6 +3653,8 @@
A5CA3F4C2C74471C00EB22F5 /* UploadCertificate(7上传过关证件) */ = {
isa = PBXGroup;
children = (
A5CA3F602C74D89500EB22F5 /* M */,
A5CA3F5D2C74D56E00EB22F5 /* VM */,
A5CA3F4E2C7447C700EB22F5 /* V */,
A5CA3F4D2C7447BB00EB22F5 /* C */,
);
......@@ -3674,6 +3682,36 @@
path = V;
sourceTree = "<group>";
};
A5CA3F5D2C74D56E00EB22F5 /* VM */ = {
isa = PBXGroup;
children = (
);
path = VM;
sourceTree = "<group>";
};
A5CA3F602C74D89500EB22F5 /* M */ = {
isa = PBXGroup;
children = (
);
path = M;
sourceTree = "<group>";
};
A5CA3F632C7586BE00EB22F5 /* VM */ = {
isa = PBXGroup;
children = (
A5CA3F5E2C74D59B00EB22F5 /* YHUploadCertificateViewModel.swift */,
);
path = VM;
sourceTree = "<group>";
};
A5CA3F642C7586C500EB22F5 /* M */ = {
isa = PBXGroup;
children = (
A5CA3F612C74D8BD00EB22F5 /* YHVisaPaymentListModel.swift */,
);
path = M;
sourceTree = "<group>";
};
A5D001262BABC84A001F003C /* V */ = {
isa = PBXGroup;
children = (
......@@ -4171,6 +4209,7 @@
045EEE992B9F171A0022A143 /* YHPreviewInfoHoldView.swift in Sources */,
045EEE7E2B9F171A0022A143 /* YHPersonInfoCellModel1.swift in Sources */,
047AA3DD2C4A6126009C4554 /* YHLifeViewController.swift in Sources */,
A5CA3F5F2C74D59B00EB22F5 /* YHUploadCertificateViewModel.swift in Sources */,
04FD856C2C2153F000BEF9C5 /* YHMyEducationCell.swift in Sources */,
A5DE0D3C2BB9016200976FE1 /* YHEmailInputAlertView.swift in Sources */,
04256DE42C72E3FA00A37BA4 /* YHInfoItemOptionView.swift in Sources */,
......@@ -4527,6 +4566,7 @@
043BA8752C241B38006EF02D /* YHAddFriendCardCell.swift in Sources */,
A5C382CF2B5F9A9100C5E65C /* YHServiceCenterMainViewModel.swift in Sources */,
045EEEA52B9F171A0022A143 /* YHImageViewController.swift in Sources */,
A5CA3F622C74D8BD00EB22F5 /* YHVisaPaymentListModel.swift in Sources */,
045EEEF32B9F171A0022A143 /* YHFamilyMemberInfoListVC.swift in Sources */,
F8BAADA52C4FCE9C0074D6C3 /* YHUatHelperViewModel.swift in Sources */,
0445E6B42BEA15C4003C52F9 /* YHAppVersionManager.swift in Sources */,
......
......@@ -301,32 +301,32 @@ class YHShareOneCollectionViewCell: UICollectionViewCell {
make.center.equalToSuperview()
make.width.height.equalTo(17)
}
if let qrCode = generateQRCode(from: YHBaseUrlManager.shared.curH5URL() + "superAppBridge.html#/evaluation?channel=lkhtj-app&customer_id=\(YHLoginManager.shared.userModel?.id ?? "")&scene_id=30") {
let qrString = YHBaseUrlManager.shared.curH5URL() + "superAppBridge.html#/evaluation?channel=lkhtj-app&customer_id=\(YHLoginManager.shared.userModel?.id ?? "")&scene_id=30"
if let qrCode = qrString.generateQRCode() {
// 可以将qrCode设置为UIImageView的image属性来显示二维码
imageView.image = qrCode
}
}
func generateQRCode(from string: String) -> UIImage? {
guard let data = string.data(using: .ascii, allowLossyConversion: false) else {
return nil
}
let filter = CIFilter(name: "CIQRCodeGenerator")
filter?.setValue(data, forKey: "inputMessage")
guard let outputImage = filter?.outputImage else {
return nil
}
let context = CIContext()
if let cgImage = context.createCGImage(outputImage, from: outputImage.extent) {
return UIImage(cgImage: cgImage)
}
return nil
}
// func generateQRCode(from string: String) -> UIImage? {
// guard let data = string.data(using: .ascii, allowLossyConversion: false) else {
// return nil
// }
//
// let filter = CIFilter(name: "CIQRCodeGenerator")
// filter?.setValue(data, forKey: "inputMessage")
//
// guard let outputImage = filter?.outputImage else {
// return nil
// }
//
// let context = CIContext()
// if let cgImage = context.createCGImage(outputImage, from: outputImage.extent) {
// return UIImage(cgImage: cgImage)
// }
//
// return nil
// }
}
class YHShareTwoCollectionViewCell: UICollectionViewCell {
......
......@@ -9,8 +9,12 @@
import UIKit
class YHVisaPaymentVC: YHBaseViewController {
var items: [String] = ["1", "1","1"] //for test hjl
let items : [String] = ["1","2","3"]
lazy var viewModel: YHVisaPaymentViewModel = {
let vm = YHVisaPaymentViewModel()
return vm
}()
lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped)
......@@ -63,10 +67,24 @@ class YHVisaPaymentVC: YHBaseViewController {
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
loadData()
}
}
private extension YHVisaPaymentVC {
func loadData() {
let params: [String : Any] = ["order_id": 133874]
viewModel.getVisaPaymentList(params) { success, error in
if success {
} else {
}
self.tableView.reloadData()
}
}
func setupUI() {
gk_navTitle = "签证缴费"
gk_navBarAlpha = 1.0
......@@ -117,11 +135,13 @@ extension YHVisaPaymentVC: UITableViewDelegate, UITableViewDataSource {
let warningCell = tableView.dequeueReusableCell(withIdentifier: YHVisaPaymentTipsCell.cellReuseIdentifier, for: indexPath)
return warningCell
} else if indexPath.section == 1 {
let approveCell = tableView.dequeueReusableCell(withIdentifier: YHVisaPayTypeCell.cellReuseIdentifier, for: indexPath)
let approveCell = tableView.dequeueReusableCell(withIdentifier: YHVisaPayTypeCell.cellReuseIdentifier, for: indexPath) as! YHVisaPayTypeCell
approveCell.dataModel = self.viewModel.visaPaymentData
return approveCell
} else if indexPath.section == 2 {
let approveCell = tableView.dequeueReusableCell(withIdentifier: YHPayMembersCell.cellReuseIdentifier, for: indexPath)
let approveCell = tableView.dequeueReusableCell(withIdentifier: YHPayMembersCell.cellReuseIdentifier, for: indexPath) as! YHPayMembersCell
approveCell.dataModel = self.viewModel.visaPaymentData
return approveCell
} else {
......
//
// YHVisaPaymentListModel.swift
// galaxy
//
// Created by davidhuangA on 2024/8/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
class YHVisaPaymentListModel: SmartCodable {
var payment_url : String = "" //支付地址url
var list : [YHVisaPaymentModel] = []
required init() {
}
}
class YHVisaPaymentModel : SmartCodable {
var id: Int = -1//
var type: String = ""//用户类型
var name: String = ""//用户姓名
var file_num : String = ""//档案号
var approval_date : String = ""//获批日期
var fee_hkd : Int = -1//缴费金额港币
var fee_rmb:String = "" //缴费金额人民币
var pay_status: Int = -1 //支付状态 7-待缴费 8-已缴费 9-电子签证已过期
var min_pay_time : String = ""//可缴费开始参考时间
var max_pay_time : String = ""//可缴费结束参考时间
var birthday : String = ""//生日
var receipt : String = ""//电子签证地址
var pay_time : String = "" // 缴费时间
var want_min_time : String = "" //意向开始时间
var want_max_time : String = "" //意向结束时间
var go_time : String = ""// 实际赴港时间
required init() {
}
}
......@@ -8,6 +8,12 @@
import UIKit
class YHPayMemberContentItems: UIView {
var dataModel : YHVisaPaymentModel? {
didSet {
updateUI()
}
}
//用来自动布局
lazy var fakeView: UIView = {
let view = UIView()
......@@ -49,7 +55,10 @@ private extension YHPayMemberContentItems {
extension YHPayMemberContentItems {
func updateUI( type : Int) {
func updateUI() {
guard let model = dataModel else { return }
whiteContentView.removeSubviews()
removeSubviews()
......@@ -67,13 +76,13 @@ extension YHPayMemberContentItems {
make.top.equalTo(kMargin)
make.left.right.equalToSuperview()
}
item.updateUI(title: "档案号:",detail: "TQEN-03709888-23",showBtn: true)
item.updateUI(title: "档案号:",detail: model.file_num,showBtn: true)
var lastView : UIView = item
if type == 1 || type == 2 {
//支付状态 7-待缴费 8-已缴费 9-电子签证已过期
if model.pay_status == 7 || model.pay_status == 9 {
do {
let item = YHPayMemberContentItem()
whiteContentView.addSubview(item)
......@@ -81,7 +90,7 @@ extension YHPayMemberContentItems {
make.top.equalTo(lastView.snp.bottom).offset(kMargin)
make.left.right.equalToSuperview()
}
item.updateUI(title: "可缴费时间段:",detail: "2023.10.1 - 2023.11.20",showBtn: false)
item.updateUI(title: "可缴费时间段:",detail: "\(model.min_pay_time) - \(model.max_pay_time)",showBtn: false)
lastView = item
}
......@@ -93,11 +102,11 @@ extension YHPayMemberContentItems {
make.top.equalTo(lastView.snp.bottom).offset(kMargin)
make.left.right.equalToSuperview()
}
item.updateUI(title: "缴费金额:",detail: "230港币(≈211.89人民币)",showBtn: false)
item.updateUI(title: "缴费金额:",detail: "\(model.fee_hkd)港币(≈\(model.fee_rmb)人民币)",showBtn: false)
lastView = item
}
} else if type == 3 {
} else if model.pay_status == 8 {
do {
let item = YHPayMemberContentItem()
......@@ -106,7 +115,7 @@ extension YHPayMemberContentItems {
make.top.equalTo(lastView.snp.bottom).offset(kMargin)
make.left.right.equalToSuperview()
}
item.updateUI(title: "缴费金额:",detail: "230港币(≈211.89人民币)",showBtn: false)
item.updateUI(title: "缴费金额:",detail: "\(model.fee_hkd)港币(≈\(model.fee_rmb)人民币)",showBtn: false)
lastView = item
}
......@@ -127,7 +136,13 @@ extension YHPayMemberContentItems {
make.top.equalTo(lastView.snp.bottom).offset(kMargin)
make.left.right.equalToSuperview()
}
item.updateUI(title: "缴费电子签证:",detail: "Visa QMEN-0021813-22.pdf",oneLine: false,showBtn: true)
if model.receipt.isEmpty {
item.updateUI(title: "缴费电子签证:",detail: "暂未查询到结果",oneLine: false,showBtn: false)
} else {
item.updateUI(title: "缴费电子签证:",detail: model.receipt,oneLine: false,showBtn: true)
}
lastView = item
}
}
......
......@@ -11,6 +11,13 @@ import AttributedString
class YHPayMemberItemsView: UIView {
var dataModel : YHVisaPaymentModel? {
didSet {
updateUI()
}
}
lazy var sectionItem: YHPayMemberSectionItem = {
let view = YHPayMemberSectionItem()
return view
......@@ -47,7 +54,10 @@ private extension YHPayMemberItemsView {
extension YHPayMemberItemsView {
func updateUI(type : Int = 1) {
func updateUI() {
guard let model = dataModel else { return }
removeSubviews()
addSubview(sectionItem)
......@@ -55,7 +65,7 @@ extension YHPayMemberItemsView {
make.top.left.right.equalToSuperview()
make.height.equalTo(YHPayMemberSectionItem.viewH)
}
sectionItem.updateUI(type: type)
sectionItem.dataModel = model
addSubview(contentItems)
......@@ -64,7 +74,7 @@ extension YHPayMemberItemsView {
make.left.equalToSuperview()
make.right.equalToSuperview()
}
contentItems.updateUI(type: type)
contentItems.dataModel = model
addSubview(lineView)
lineView.snp.makeConstraints { make in
......@@ -73,10 +83,10 @@ extension YHPayMemberItemsView {
make.height.equalTo(1)
make.bottom.equalToSuperview()
}
if type == 3 {
lineView.isHidden = true
} else {
lineView.isHidden = false
}
// if type == 3 {
// lineView.isHidden = true
// } else {
// lineView.isHidden = false
// }
}
}
......@@ -11,6 +11,12 @@ import UIKit
class YHPayMemberSectionItem: UIView {
static let viewH : CGFloat = 22.0
var dataModel : YHVisaPaymentModel? {
didSet {
updateUI()
}
}
lazy var tagView: UIView = {
let view = UIView()
view.backgroundColor = .brandMainColor
......@@ -76,20 +82,26 @@ private extension YHPayMemberSectionItem {
extension YHPayMemberSectionItem {
func updateUI(type : Int) {
func updateUI() {
guard let model = dataModel else { return }
var txt = "待缴费"
var color : UIColor = UIColor.failColor
if type == 1 {
//支付状态 7-待缴费 8-已缴费 9-电子签证已过期
if model.pay_status == 7 {
txt = "待缴费"
color = .brandMainColor
} else if type == 2 {
} else if model.pay_status == 9 {
txt = "已过期"
color = .failColor
} else if type == 3 {
} else if model.pay_status == 8 {
txt = "已缴费"
color = .mainTextColor50
}
titleLabel.text = model.name
detailLabel.text = txt
detailLabel.textColor = color
......
......@@ -13,6 +13,12 @@ class YHPayMembersCell: UITableViewCell {
static let cellReuseIdentifier = "YHPayMembersCell"
var dataModel : YHVisaPaymentListModel? {
didSet {
updataUI()
}
}
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
......@@ -107,32 +113,26 @@ private extension YHPayMembersCell {
make.bottom.equalToSuperview()
}
updateUI() //for test hjl
}
}
private extension YHPayMembersCell {
func updateUI() {
func updataUI() {
guard let model = dataModel,model.list.count > 0 else { return }
for (index,item) in arrOtherView.enumerated() {
item.removeFromSuperview()
}
arrOtherView.removeAll()
//for test hjl
fakeView.snp.removeConstraints()
let arr : [Int] = [1,2,3]//for test hjl
var lastView : UIView = tipsLable
for (index, item) in arr.enumerated() {
for (index, item) in model.list.enumerated() {
let view = YHPayMemberItemsView()
whiteContentView.addSubview(view)
view.snp.makeConstraints { make in
......@@ -140,7 +140,7 @@ private extension YHPayMembersCell {
make.left.equalTo(kMargin)
make.right.equalToSuperview().offset(-kMargin)
}
view.updateUI(type: index + 1)
view.dataModel = item
lastView = view
arrOtherView.append(view)
......@@ -155,5 +155,6 @@ private extension YHPayMembersCell {
make.bottom.equalToSuperview()
}
}
}
......@@ -14,6 +14,12 @@ class YHVisaPayTypeCell: UITableViewCell {
static let cellReuseIdentifier = "YHVisaPayTypeCell"
var dataModel : YHVisaPaymentListModel? {
didSet {
updataUI()
}
}
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
......@@ -24,6 +30,23 @@ class YHVisaPayTypeCell: UITableViewCell {
}()
lazy var linkLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
label.textColor = UIColor.brandMainColor
label.font = UIFont.PFSC_R(ofSize:12)
let linkTxt : String = "https://www.gov.hk/tc/residents/immigration/nonpermanent/onlinepaymentforevisa.htm"
return label
}()
lazy var qrCodeImageView : UIImageView = {
let qrCode : UIImageView = UIImageView()
qrCode.contentMode = .scaleAspectFill
qrCode.isUserInteractionEnabled = false
qrCode.addGestureRecognizer(longPress)
return qrCode
}()
/// 已添加的长按手势
private lazy var longPress: UILongPressGestureRecognizer = {
......@@ -45,6 +68,34 @@ class YHVisaPayTypeCell: UITableViewCell {
private extension YHVisaPayTypeCell {
func updataUI() {
guard let model = dataModel else { return }
let linkTxt : String = model.payment_url
let aa: ASAttributedString = .init(NSAttributedString(string: linkTxt), .font(UIFont.PFSC_R(ofSize: 12)),.foreground(UIColor.brandMainColor),.underline([.single], color: UIColor.brandMainColor),.action {
if let url = URL(string: linkTxt) {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
// 显示一个提示,告知用户无法打开链接
print("无法打开链接")
}
}
})
linkLabel.attributed.text = aa
let qrString = linkTxt
if let qrCode = qrString.generateQRCode() {
// 可以将qrCode设置为UIImageView的image属性来显示二维码
self.qrCodeImageView.image = qrCode
self.qrCodeImageView.isUserInteractionEnabled = true
}
}
func saveImage(_ image: UIImage) {
// 确保应用有权访问相册
PHPhotoLibrary.requestAuthorization { status in
......@@ -143,27 +194,8 @@ private extension YHVisaPayTypeCell {
let link = UILabel()
link.numberOfLines = 0
link.textColor = UIColor.brandMainColor
link.font = UIFont.PFSC_R(ofSize:12)
let linkTxt : String = "https://www.gov.hk/tc/residents/immigration/nonpermanent/onlinepaymentforevisa.htm"
let aa: ASAttributedString = .init(NSAttributedString(string: linkTxt), .font(UIFont.PFSC_R(ofSize: 12)),.foreground(UIColor.brandMainColor),.underline([.single], color: UIColor.brandMainColor),.action {
if let url = URL(string: linkTxt) {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
// 显示一个提示,告知用户无法打开链接
print("无法打开链接")
}
}
})
link.attributed.text = aa
holdView.addSubview(link)
link.snp.makeConstraints { make in
holdView.addSubview(linkLabel)
linkLabel.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.left.equalTo(kMargin)
make.right.equalTo(-kMargin)
......@@ -182,13 +214,10 @@ private extension YHVisaPayTypeCell {
make.height.equalTo(1)
}
let qrCode : UIImageView = UIImageView(image: UIImage(named: "visaPay_qr"))
qrCode.contentMode = .scaleAspectFill
qrCode.isUserInteractionEnabled = true
qrCode.addGestureRecognizer(longPress)
whiteContentView.addSubview(qrCode)
qrCode.snp.makeConstraints { make in
whiteContentView.addSubview(qrCodeImageView)
qrCodeImageView.snp.makeConstraints { make in
make.top.equalTo(line2.snp.bottom).offset(18)
make.right.equalTo(-kMargin)
make.height.width.equalTo(86)
......@@ -204,7 +233,7 @@ private extension YHVisaPayTypeCell {
whiteContentView.addSubview(label3)
label3.snp.makeConstraints { make in
make.top.equalTo(qrCode.snp.top).offset(12)
make.top.equalTo(qrCodeImageView.snp.top).offset(12)
make.left.equalTo(kMargin)
make.height.equalTo(20)
}
......@@ -222,7 +251,7 @@ private extension YHVisaPayTypeCell {
label4.snp.makeConstraints { make in
make.top.equalTo(label3.snp.bottom).offset(6)
make.left.equalTo(kMargin)
make.right.equalTo(qrCode.snp.left).offset(-kMargin)
make.right.equalTo(qrCodeImageView.snp.left).offset(-kMargin)
}
}
......
//
// YHVisaPaymentViewModel.swift
// galaxy
//
// Created by davidhuangA on 2024/8/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHVisaPaymentViewModel: YHBaseViewModel {
//电子签字列表
var visaPaymentData : YHVisaPaymentListModel?
}
//请求接口
extension YHVisaPaymentViewModel {
//电子签字缴费列表
func getVisaPaymentList(_ params: [String : Any],callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.VisaPayment.paymentListApi
let _ = YHNetRequest.getRequest(url: strUrl,params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
printLog("model 是 ==> \(json)")
if json.code == 200 {
let dic = json.data
guard let resultModel = YHVisaPaymentListModel.deserialize(dict: dic as? [AnyHashable : Any]) else {
callBackBlock(false,nil)
return
}
self.visaPaymentData = resultModel
callBackBlock(true,nil)
} else {
let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
callBackBlock(false,err)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
}
......@@ -255,4 +255,27 @@ extension String {
let regex = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$"
return range(of: regex, options: .regularExpression, range: nil, locale: nil) != nil
}
///字符串 生成二维码
func generateQRCode() -> UIImage? {
guard let data = self.data(using: .ascii, allowLossyConversion: false) else {
return nil
}
let filter = CIFilter(name: "CIQRCodeGenerator")
filter?.setValue(data, forKey: "inputMessage")
guard let outputImage = filter?.outputImage else {
return nil
}
let context = CIContext()
if let cgImage = context.createCGImage(outputImage, from: outputImage.extent) {
return UIImage(cgImage: cgImage)
}
return nil
}
}
......@@ -8,6 +8,11 @@
class YHAllApiName {
//办证段 - 签证缴费
struct VisaPayment {
//GetUserPaymentList 电子签证缴费列表
static let paymentListApi = "super-app/order/customer/service/payment"
}
//灰度功能接口
struct Uat {
......
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