Commit 98bbaba8 authored by pete谢兆麟's avatar pete谢兆麟

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

# Conflicts:
#	galaxy/galaxy.xcodeproj/project.pbxproj
parents e0695060 e366f050
This diff is collapsed.
......@@ -11,6 +11,8 @@ import UIKit
class YHCertificateAppointViewController: YHBaseViewController {
var items = ["", "", ""]
let viewModel = YHCerAppointViewModel()
lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped)
tableView.estimatedSectionHeaderHeight = 16.0
......@@ -78,6 +80,16 @@ extension YHCertificateAppointViewController: UITableViewDelegate, UITableViewDa
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.viewModel.getServicelist { success, error in
let view = YHServiceSelectAlertView.alertView()
view.items = self.viewModel.serviceArr
view.confirmBlock = {
[weak self] ids in
printLog("\(ids)")
}
view.show()
}
if 0 <= indexPath.section && indexPath.section < items.count {
}
......
......@@ -29,7 +29,6 @@ class YHGrabFileCell: UICollectionViewCell {
func createUI() {
self.layer.cornerRadius = 5.0
self.layer.borderWidth = 0.5
self.layer.borderColor = UIColor.separatorColor.cgColor
self.backgroundColor = UIColor.init(hex: 0xD8D8D8)
self.layer.borderColor = UIColor.init(hex: 0xD8D8D8).cgColor
}
}
//
// YHServiceItemCell.swift
// galaxy
//
// Created by edy on 2024/8/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHServiceItemCell: UICollectionViewCell {
static let cellReuseIdentifier = "YHServiceItemCell"
lazy var titleLabel: UILabel = {
let label = UILabel()
label.font = UIFont.PFSC_M(ofSize: 13)
label.textColor = .mainTextColor
label.textAlignment = .center
return label
}()
override init(frame: CGRect) {
super.init(frame: frame)
createUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func updateItem(_ item: YHServiceItem) {
titleLabel.text = item.name
if item.isSelect {
self.layer.borderWidth = 1.0
self.layer.borderColor = UIColor.brandMainColor.cgColor
titleLabel.textColor = UIColor.brandMainColor
} else {
self.layer.borderWidth = 0.0
self.layer.borderColor = nil
titleLabel.textColor = UIColor.mainTextColor
}
}
func createUI() {
self.layer.cornerRadius = kCornerRadius3
self.backgroundColor = UIColor.init(hex: 0xF4F6FA)
self.addSubview(titleLabel)
titleLabel.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
}
}
//
// YHServiceSelectAlertView.swift
// galaxy
//
// Created by edy on 2024/8/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import AttributedString
import SmartCodable
class YHServiceItem: SmartCodable {
var id: Int = 0
var name: String = ""
var isSelect: Bool = false
required init() {
}
init(id: Int = 0, name: String = "") {
self.id = id
self.name = name
}
}
class YHServiceSelectAlertView: UICollectionViewCell {
var items:[YHServiceItem] = [] {
didSet {
var rowCount = items.count/3
if items.count%3 != 0 {
rowCount += 1
}
var height = 0.0
if rowCount > 0 {
height = 42.0 * Double(rowCount) + 16.0 * Double(rowCount-1)
}
collectionView.reloadData()
collectionView.snp.updateConstraints { make in
make.height.equalTo(height)
}
}
}
var confirmBlock:(([Int])->())?
// 底层蒙版
lazy var blackMaskView: UIView = {
let view = UIView()
view.backgroundColor = .alertMaskColor
return view
}()
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = kCornerRadius6
return view
}()
lazy var bgImgView: UIView = {
let view = UIImageView(image: UIImage(named: "service_list_bg"))
return view
}()
lazy var iconImgView: UIView = {
let view = UIImageView(image: UIImage(named: "service_list_icon"))
return view
}()
lazy var titleLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
let a: ASAttributedString = .init("期望银河在", .font(UIFont.PFSC_B(ofSize: 18)),.foreground(UIColor.mainTextColor))
let b: ASAttributedString = .init("办证阶段", .font(UIFont.PFSC_B(ofSize: 18)),.foreground(UIColor.brandMainColor))
let c: ASAttributedString = .init("\n提供哪些服务", .font(UIFont.PFSC_B(ofSize: 18)),.foreground(UIColor.mainTextColor))
label.attributed.text = a+b+c
return label
}()
lazy var collectionView: UICollectionView = {
let layout = UICollectionViewFlowLayout()
layout.scrollDirection = .vertical
layout.minimumInteritemSpacing = 8.0
layout.minimumLineSpacing = 16
let collectView = UICollectionView(frame:.zero, collectionViewLayout: layout)
collectView.delegate = self
collectView.dataSource = self
collectView.backgroundColor = .clear
// 注册自定义单元格
collectView.register(YHServiceItemCell.self, forCellWithReuseIdentifier: YHServiceItemCell.cellReuseIdentifier)
return collectView
}()
lazy var confirmBtn: UIButton = {
let btn = UIButton()
btn.backgroundColor = .brandMainColor
btn.titleLabel?.font = .PFSC_M(ofSize: 14)
btn.setTitle("确认", for: .normal)
btn.setTitleColor(.white, for: .normal)
btn.layer.cornerRadius = kCornerRadius3
btn.addTarget(self, action: #selector(didConfirmBtnClicked), for: .touchUpInside)
return btn
}()
lazy var closeBtn:UIButton = {
let btn = UIButton()
btn.setImage(UIImage(named: "update_close"), for: .normal)
btn.addTarget(self, action: #selector(didCloseBtnClicked), for: .touchUpInside)
return btn
}()
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(frame: CGRect) {
super.init(frame: frame)
createUI()
}
func createUI() {
self.addSubview(blackMaskView)
self.addSubview(whiteContentView)
self.addSubview(closeBtn)
whiteContentView.addSubview(bgImgView)
whiteContentView.addSubview(iconImgView)
whiteContentView.addSubview(titleLabel)
whiteContentView.addSubview(confirmBtn)
whiteContentView.addSubview(collectionView)
whiteContentView.addSubview(confirmBtn)
blackMaskView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
whiteContentView.snp.makeConstraints { make in
make.left.equalTo(38)
make.right.equalTo(-38)
make.centerX.equalToSuperview()
make.centerY.equalToSuperview().offset(-24)
}
bgImgView.snp.makeConstraints { make in
make.left.right.top.equalTo(0)
make.height.equalTo(153)
}
iconImgView.snp.makeConstraints { make in
make.width.equalTo(102)
make.height.equalTo(84)
make.top.equalTo(16)
make.right.equalTo(-16)
}
titleLabel.snp.makeConstraints { make in
make.top.equalTo(34)
make.left.equalTo(18)
make.right.equalTo(iconImgView.snp.left)
}
collectionView.snp.makeConstraints { make in
make.top.equalTo(iconImgView.snp.bottom).offset(20)
make.left.equalTo(16)
make.right.equalTo(-16)
make.height.equalTo(0)
make.bottom.equalTo(confirmBtn.snp.top).offset(-30)
}
confirmBtn.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
make.bottom.equalTo(-16)
make.height.equalTo(45)
}
closeBtn.snp.makeConstraints { make in
make.width.height.equalTo(24)
make.top.equalTo(whiteContentView.snp.bottom).offset(24)
make.centerX.equalTo(whiteContentView)
}
}
static func alertView() -> YHServiceSelectAlertView {
let alertView = YHServiceSelectAlertView(frame:UIScreen.main.bounds)
return alertView
}
@objc func show() {
UIApplication.shared.yhKeyWindow()?.addSubview(self)
}
@objc func dismiss() {
self.removeFromSuperview()
}
@objc func didConfirmBtnClicked() {
var ids = [Int]()
for item in items {
if item.isSelect {
ids.append(item.id)
}
}
confirmBlock?(ids)
dismiss()
}
@objc func didCloseBtnClicked() {
dismiss()
}
}
extension YHServiceSelectAlertView: UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
// 返回单元格数量
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return items.count
}
// 返回每个单元格的大小
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let width = floorl((KScreenWidth-54.0*2.0-10.0*2.0)/3.0)
return CGSize(width: width, height: 42)
}
// 返回自定义单元格
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: YHServiceItemCell.cellReuseIdentifier, for: indexPath) as! YHServiceItemCell
if 0 <= indexPath.item && indexPath.item < items.count {
let item = items[indexPath.item]
cell.updateItem(item)
}
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if 0 <= indexPath.item && indexPath.item < items.count {
let item = items[indexPath.item]
item.isSelect = !item.isSelect
collectionView.reloadData()
}
}
}
//
// YHCerAppointViewModel.swift
// galaxy
//
// Created by edy on 2024/8/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHCerAppointViewModel: NSObject {
var serviceArr:[YHServiceItem] = []
func getServicelist(_ callBack: @escaping (_ success: Bool,_ error: YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.MakeCertificate.servicelist
let _ = YHNetRequest.getRequest(url: strUrl) {
[weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
printLog(json)
if json.code == 200 {
let dic = json.data
guard let list = [YHServiceItem].deserialize(array: dic as? [Any]) else {
let err = YHErrorModel(errorCode: YHErrorCode.dictParseError.rawValue, errorMsg: YHErrorCode.dictParseError.description())
self.serviceArr = []
callBack(false, err)
return
}
self.serviceArr.removeAll()
for item in list {
if let item = item {
self.serviceArr.append(item)
}
}
callBack(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
self.serviceArr = []
callBack(false, error)
}
} failBlock: { err in
self.serviceArr = []
callBack(false, err)
}
}
}
......@@ -10,8 +10,11 @@ import UIKit
class YHFamilyInfoConfirmViewController: YHBaseViewController {
var items: [String] = ["1", "1"]
var orderId: Int = 151086
var sectionItems:[String] = ["", "", "", ""]
var familyArr: [YHApplicantInfoModel] = []
let viewModel = YHFamilyInfoConfirmViewModel()
lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped)
tableView.estimatedSectionHeaderHeight = 16.0
......@@ -25,25 +28,62 @@ class YHFamilyInfoConfirmViewController: YHBaseViewController {
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell")
tableView.register(YHRiskWarningCell.self, forCellReuseIdentifier: YHRiskWarningCell.cellReuseIdentifier)
tableView.register(YHApproverInfoVerifyCell.self, forCellReuseIdentifier: YHApproverInfoVerifyCell.cellReuseIdentifier)
tableView.register(YHCertificateInfoPhotoCell.self, forCellReuseIdentifier: YHCertificateInfoPhotoCell.cellReuseIdentifier)
tableView.register(YHFamilyWarmTipsCell.self, forCellReuseIdentifier: YHFamilyWarmTipsCell.cellReuseIdentifier)
return tableView
}()
lazy var bottomBtn: UIButton = {
let btn = UIButton()
btn.backgroundColor = .brandMainColor
btn.setTitle("确认修改,下一步", for: .normal)
btn.setTitleColor(.white, for: .normal)
btn.titleLabel?.font = UIFont.PFSC_M(ofSize: 16)
btn.addTarget(self, action: #selector(didBottomBtnClicked), for: .touchUpInside)
btn.layer.cornerRadius = kCornerRadius3
return btn
}()
lazy var bottomView: UIView = {
let view = UIView()
view.backgroundColor = .white
view.addSubview(bottomBtn)
bottomBtn.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
make.top.equalTo(8)
make.height.equalTo(48)
}
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
self.gk_navTitle = "家庭信息确认"
self.view.backgroundColor = .white
self.view.addSubview(self.tableView)
self.view.addSubview(bottomView)
self.tableView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.left.right.equalToSuperview()
make.top.equalTo(k_Height_NavigationtBarAndStatuBar+16)
make.bottom.equalTo(bottomView.snp.top)
}
self.bottomView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.height.equalTo(98)
}
getFamilyInfo()
}
@objc func didBottomBtnClicked() {
}
}
extension YHFamilyInfoConfirmViewController: UITableViewDelegate, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return items.count
return sectionItems.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
......@@ -51,19 +91,25 @@ extension YHFamilyInfoConfirmViewController: UITableViewDelegate, UITableViewDat
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// let cell = tableView.dequeueReusableCell(withIdentifier: YHRiskWarningCell.cellReuseIdentifier, for: indexPath)
if 0 <= indexPath.section && indexPath.section < items.count {
if 0 <= indexPath.section && indexPath.section < sectionItems.count {
if indexPath.section == 0 {
let warningCell = tableView.dequeueReusableCell(withIdentifier: YHRiskWarningCell.cellReuseIdentifier, for: indexPath)
return warningCell
}
if indexPath.section == 1 {
let approveCell = tableView.dequeueReusableCell(withIdentifier: YHApproverInfoVerifyCell.cellReuseIdentifier, for: indexPath) as! YHApproverInfoVerifyCell
approveCell.updateFamilyArr(self.familyArr)
return approveCell
}
if indexPath.section == 2 {
let certificateInfoCell = tableView.dequeueReusableCell(withIdentifier: YHCertificateInfoPhotoCell.cellReuseIdentifier, for: indexPath) as! YHCertificateInfoPhotoCell
return certificateInfoCell
}
}
let approveCell = tableView.dequeueReusableCell(withIdentifier: YHApproverInfoVerifyCell.cellReuseIdentifier, for: indexPath)
return approveCell
let warmTipsCell = tableView.dequeueReusableCell(withIdentifier: YHFamilyWarmTipsCell.cellReuseIdentifier, for: indexPath) as! YHFamilyWarmTipsCell
return warmTipsCell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
......@@ -72,7 +118,7 @@ extension YHFamilyInfoConfirmViewController: UITableViewDelegate, UITableViewDat
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if 0 <= indexPath.section && indexPath.section < items.count {
if 0 <= indexPath.section && indexPath.section < sectionItems.count {
}
}
......@@ -97,3 +143,26 @@ extension YHFamilyInfoConfirmViewController: UITableViewDelegate, UITableViewDat
return view
}
}
extension YHFamilyInfoConfirmViewController {
func getFamilyInfo() {
YHHUD.show(.progress(message: "加载中..."))
self.viewModel.getFamilyInfo(param: ["orderId" : orderId]) {
[weak self] success, error in
YHHUD.hide()
guard let self = self else { return }
self.familyArr.removeAll()
if self.viewModel.familyInfo.main.info.id > 0 {
self.familyArr.append(self.viewModel.familyInfo.main)
}
if self.viewModel.familyInfo.spouse.info.id > 0 {
self.familyArr.append(self.viewModel.familyInfo.spouse)
}
for child in self.viewModel.familyInfo.children {
self.familyArr.append(child)
}
self.tableView.reloadData()
}
}
}
//
// YHFamilyInfoModel.swift
// galaxy
//
// Created by edy on 2024/8/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
class YHFamilyGroupModel: SmartCodable {
var orderid: Int = 0
var main: YHApplicantInfoModel = YHApplicantInfoModel()
var spouse: YHApplicantInfoModel = YHApplicantInfoModel()
var children: [YHApplicantInfoModel] = []
enum CodingKeys: String, CodingKey {
case orderid = "order_id"
case main = "main"
case spouse = "spouse"
case children = "children"
}
required init() {
}
init(orderid: Int, main: YHApplicantInfoModel, spouse: YHApplicantInfoModel, children: [YHApplicantInfoModel]) {
self.orderid = orderid
self.main = main
self.spouse = spouse
self.children = children
}
}
// MARK: - Main
class YHApplicantInfoModel: SmartCodable {
var info: YHFamilyMemberInfoModel = YHFamilyMemberInfoModel()
var confirmStatus: Int = 0
enum CodingKeys: String, CodingKey {
case info = "info"
case confirmStatus = "confirm_status"
}
required init() {
}
init(info: YHFamilyMemberInfoModel, confirmStatus: Int) {
self.info = info
self.confirmStatus = confirmStatus
}
}
// MARK: - Info
class YHFamilyMemberInfoModel: SmartCodable {
var id: Int = -1
var name: String = ""
var nameHistory: String = ""
var familyName: String = ""
var familyNameHistory: String = ""
var givenName: String = ""
var givenNameHistory: String = ""
var married: String = ""
var marriedHistory: String = ""
var birthPlaceAboard: Int = -1
var birthPlaceAboardHistory: Int = -1
var birthPlace: YHApplicantBirthPlaceModel = YHApplicantBirthPlaceModel()
var birthPlaceHistory: YHApplicantBirthPlaceModel = YHApplicantBirthPlaceModel()
var nationalityType: Int = -1
var nationalityTypeHistory: Int = -1
var nationality: String = ""
var nationalityHistory: String = ""
var hkIdentityid: String = ""
var hkIdentityidHistory: String = ""
var identity: YHApplicantIdentityModel = YHApplicantIdentityModel()
var occupationName: String = ""
var occupationNameHistory: String = ""
// 自定义属性
var relation:Int = YHFamilyMemberRelationType.none.rawValue
func getRelation() -> String {
if relation == YHFamilyMemberRelationType.mainApplicant.rawValue {
return "主申人"
} else if relation == YHFamilyMemberRelationType.spouse.rawValue {
return "配偶"
} else if relation == YHFamilyMemberRelationType.child.rawValue {
return "子女"
}
return ""
}
required init() {
}
enum CodingKeys: String, CodingKey {
case id = "id"
case name = "name"
case nameHistory = "name_history"
case familyName = "family_name"
case familyNameHistory = "family_name_history"
case givenName = "given_name"
case givenNameHistory = "given_name_history"
case married = "married"
case marriedHistory = "married_history"
case birthPlaceAboard = "birth_place_aboard"
case birthPlaceAboardHistory = "birth_place_aboard_history"
case birthPlace = "birth_place"
case birthPlaceHistory = "birth_place_history"
case nationalityType = "nationality_type"
case nationalityTypeHistory = "nationality_type_history"
case nationality = "nationality"
case nationalityHistory = "nationality_history"
case hkIdentityid = "hk_identity_id"
case hkIdentityidHistory = "hk_identity_id_history"
case identity = "identity"
case occupationName = "occupation_name"
case occupationNameHistory = "occupation_name_history"
}
init(id: Int, name: String, nameHistory: String, familyName: String, familyNameHistory: String, givenName: String, givenNameHistory: String, married: String, marriedHistory: String, birthPlaceAboard: Int, birthPlaceAboardHistory: Int, birthPlace: YHApplicantBirthPlaceModel, birthPlaceHistory: YHApplicantBirthPlaceModel, nationalityType: Int, nationalityTypeHistory: Int, nationality: String, nationalityHistory: String, hkIdentityid: String, hkIdentityidHistory: String, identity: YHApplicantIdentityModel, occupationName: String, occupationNameHistory: String) {
self.id = id
self.name = name
self.nameHistory = nameHistory
self.familyName = familyName
self.familyNameHistory = familyNameHistory
self.givenName = givenName
self.givenNameHistory = givenNameHistory
self.married = married
self.marriedHistory = marriedHistory
self.birthPlaceAboard = birthPlaceAboard
self.birthPlaceAboardHistory = birthPlaceAboardHistory
self.birthPlace = birthPlace
self.birthPlaceHistory = birthPlaceHistory
self.nationalityType = nationalityType
self.nationalityTypeHistory = nationalityTypeHistory
self.nationality = nationality
self.nationalityHistory = nationalityHistory
self.hkIdentityid = hkIdentityid
self.hkIdentityidHistory = hkIdentityidHistory
self.identity = identity
self.occupationName = occupationName
self.occupationNameHistory = occupationNameHistory
}
}
// MARK: - BirthPlace
class YHApplicantBirthPlaceModel: SmartCodable {
var area: [String] = []
var country: String = ""
var details: String = ""
var foreign: String = ""
required init() {
}
enum CodingKeys: String, CodingKey {
case area = "area"
case country = "country"
case details = "details"
case foreign = "foreign"
}
init(area: [String], country: String, details: String, foreign: String) {
self.area = area
self.country = country
self.details = details
self.foreign = foreign
}
}
// MARK: - Identity
class YHApplicantIdentityModel: SmartCodable {
var type: Int = -1
var name: String = ""
var number: String = ""
required init() {
}
enum CodingKeys: String, CodingKey {
case type = "type"
case name = "name"
case number = "number"
}
init(type: Int, name: String, number: String) {
self.type = type
self.name = name
self.number = number
}
}
......@@ -13,9 +13,17 @@ class YHApproverInfoVerifyCell: UITableViewCell {
static let cellReuseIdentifier = "YHApproverInfoVerifyCell"
var items:[String] = ["", "", "", "", ""]
var familyArr:[YHApplicantInfoModel] = []
let memberRowHeight = 69.0
func updateFamilyArr(_ familyArr: [YHApplicantInfoModel]) {
self.familyArr = familyArr
tableView.snp.updateConstraints { make in
make.height.equalTo(memberRowHeight * Double(familyArr.count) + 4.0)
}
self.tableView.reloadData()
}
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
......@@ -88,7 +96,7 @@ class YHApproverInfoVerifyCell: UITableViewCell {
tableView.snp.makeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom).offset(12)
make.height.equalTo(memberRowHeight * Double(items.count) + 4.0)
make.height.equalTo(0)
make.left.right.bottom.equalToSuperview()
}
tableView.reloadData()
......@@ -98,15 +106,16 @@ class YHApproverInfoVerifyCell: UITableViewCell {
extension YHApproverInfoVerifyCell: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
return familyArr.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: YHFamilyMemberInfoCell.cellReuseIdentifier, for: indexPath)
let cell = tableView.dequeueReusableCell(withIdentifier: YHFamilyMemberInfoCell.cellReuseIdentifier, for: indexPath) as! YHFamilyMemberInfoCell
if 0 <= indexPath.section && indexPath.section < items.count {
if 0 <= indexPath.row && indexPath.row < familyArr.count {
let model = familyArr[indexPath.row]
cell.updateModel(model)
}
return cell
}
......@@ -117,8 +126,10 @@ extension YHApproverInfoVerifyCell: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if 0 <= indexPath.row && indexPath.row < items.count {
let vc = YHFamilyInfoUpdateViewController()
if 0 <= indexPath.row && indexPath.row < familyArr.count {
let model = familyArr[indexPath.row]
let vc = YHFamilyInfoConfirmViewController()
vc.orderId = model.info.id
UIViewController.current?.navigationController?.pushViewController(vc)
}
}
......
//
// YHCertificateInfoPhotoCell.swift
// galaxy
//
// Created by edy on 2024/8/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHCertificateInfoPhotoCell: UITableViewCell {
static let cellReuseIdentifier = "YHCertificateInfoPhotoCell"
lazy var infoImgView: UIImageView = {
let view = UIImageView(image: UIImage(named: "family_certificate_info"))
return view
}()
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
func setupUI() {
self.selectionStyle = .none
self.backgroundColor = .clear
self.contentView.backgroundColor = .clear
contentView.addSubview(infoImgView)
infoImgView.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalTo(0)
make.bottom.equalTo(0)
make.height.equalTo(infoImgView.snp.width).multipliedBy(2716.0/343.0)
}
}
}
......@@ -9,9 +9,19 @@
import UIKit
class YHFamilyMemberInfoCell: UITableViewCell {
static let cellReuseIdentifier = "YHFamilyMemberInfoCell"
func updateModel(_ model: YHApplicantInfoModel) {
self.relationLabel.text = model.info.getRelation()
self.nameLabel.text = model.info.name
self.pinyinLabel.text = "\(model.info.familyName) \(model.info.givenName)"
self.statusLabel.text = model.confirmStatus == 1 ? "已确认" : "待核对"
let tintColor: UIColor = model.confirmStatus == 1 ? .brandMainColor : .init(hex: 0x3CC694)
let originArrowImg = UIImage(named: "family_info_status_arrow")
self.arrowImgView.image = originArrowImg?.withTintColor(tintColor, renderingMode: UIImage.RenderingMode.alwaysTemplate)
}
lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
......
//
// YHFamilyWarmTipsCell.swift
// galaxy
//
// Created by edy on 2024/8/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHFamilyWarmTipsCell: UITableViewCell {
static let cellReuseIdentifier = "YHFamilyWarmTipsCell"
lazy var infoImgView: UIImageView = {
let view = UIImageView(image: UIImage(named: "family_warm_tips"))
return view
}()
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
func setupUI() {
self.selectionStyle = .none
self.backgroundColor = .clear
self.contentView.backgroundColor = .clear
contentView.addSubview(infoImgView)
infoImgView.snp.makeConstraints { make in
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalTo(0)
make.bottom.equalTo(0)
make.height.equalTo(infoImgView.snp.width).multipliedBy(250.0/343.0)
}
}
}
//
// YHFamilyInfoConfirmModel.swift
// galaxy
//
// Created by edy on 2024/8/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHFamilyInfoConfirmViewModel: NSObject {
var familyInfo: YHFamilyGroupModel = YHFamilyGroupModel()
func getFamilyInfo(param:[String : Any], callback:((_ success: Bool,_ error:YHErrorModel?)->())?) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.FamilyInfoConfirm.familyInfo
let _ = YHNetRequest.getRequest(url: strUrl,params: param) { [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 = YHFamilyGroupModel.deserialize(dict: dic as? [AnyHashable : Any]) else {
let err = YHErrorModel(errorCode: YHErrorCode.dictParseError.rawValue, errorMsg: YHErrorCode.dictParseError.description())
callback?(false, err)
return
}
self.familyInfo = resultModel
// 处理亲属关系
self.familyInfo.main.info.relation = YHFamilyMemberRelationType.mainApplicant.rawValue
self.familyInfo.spouse.info.relation = YHFamilyMemberRelationType.spouse.rawValue
for child in self.familyInfo.children {
child.info.relation = YHFamilyMemberRelationType.child.rawValue
}
callback?(true, nil)
} else {
let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
callback?(false, err)
}
} failBlock: { err in
callback?(false, err)
}
}
}
//
// YHUploadCertificateVC.swift
// galaxy
//
// Created by davidhuangA on 2024/8/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHUploadCertificateVC: YHBaseViewController {
var items: [String] = ["1", "1"] //for test hjl
lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped)
tableView.estimatedSectionHeaderHeight = 16.0
tableView.estimatedSectionFooterHeight = 0.01
tableView.contentInsetAdjustmentBehavior = .never
tableView.showsVerticalScrollIndicator = false
tableView.separatorStyle = .none
tableView.delegate = self
tableView.dataSource = self
tableView.backgroundColor = .clear
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell")
tableView.register(YHUploadCertificateTitleCell.self, forCellReuseIdentifier: YHUploadCertificateTitleCell.cellReuseIdentifier)
tableView.register(YHUploadCertificateDetailCell.self, forCellReuseIdentifier: YHUploadCertificateDetailCell.cellReuseIdentifier)
return tableView
}()
//我已悉知,确认
lazy var rewardBtn: UIButton = {
let button = UIButton(type: .custom)
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 15)
button.contentHorizontalAlignment = .center
button.setTitle("我已全部缴费,下一步", for: .normal)
button.setTitle("缴费结果更新中,请耐心等待", for: .disabled)
button.setTitleColor(UIColor.white, for: .normal)
button.setTitleColor(UIColor.white, for: .disabled)
button.layer.cornerRadius = kCornerRadius3
button.clipsToBounds = true
button.addTarget(self, action: #selector(clickNextBtn), for: .touchUpInside)
button.backgroundColor = UIColor.brandMainColor
return button
}()
lazy var bottomView: UIView = {
let view = UIView()
view.backgroundColor = .clear
view.addSubview(self.rewardBtn)
self.rewardBtn.snp.makeConstraints { make in
make.top.equalToSuperview().offset(10)
make.left.equalTo(kMargin)
make.right.equalTo(-kMargin)
make.height.equalTo(44)
}
view.layer.zPosition = 10
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
}
}
private extension YHUploadCertificateVC {
func setupUI() {
gk_navTitle = "上传过关证件"
gk_navBarAlpha = 1.0
gk_navBackgroundColor = .white
view.backgroundColor = UIColor.contentBkgColor
view.addSubview(tableView)
// view.addSubview(bottomView)
// bottomView.snp.makeConstraints { make in
// make.bottom.left.right.equalToSuperview()
// make.height.equalTo(98)
// }
tableView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(kMargin)
make.right.equalToSuperview().offset(-kMargin)
make.top.equalTo(k_Height_NavigationtBarAndStatuBar)
make.bottom.equalToSuperview()
}
}
@objc func clickNextBtn() {
YHHUD.flash(message: "预计会在1个工作日内更新缴费结果")
disableSureButton()
}
func disableSureButton() {
rewardBtn.isEnabled = false
rewardBtn.backgroundColor = UIColor.brandMainColor30
}
}
extension YHUploadCertificateVC: UITableViewDelegate, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return 2
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 4 //for test hjl
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if 0 <= indexPath.section && indexPath.section < items.count {
if indexPath.row == 0 {
let warningCell = tableView.dequeueReusableCell(withIdentifier: YHUploadCertificateTitleCell.cellReuseIdentifier, for: indexPath)
return warningCell
} else {
let approveCell = tableView.dequeueReusableCell(withIdentifier: YHUploadCertificateDetailCell.cellReuseIdentifier, for: indexPath) as! YHUploadCertificateDetailCell
if indexPath.row == 3 {
approveCell.isLastCell = true
} else {
approveCell.isLastCell = false
}
return approveCell
}
}
let approveCell = tableView.dequeueReusableCell(withIdentifier: YHVisaPayTypeCell.cellReuseIdentifier, for: indexPath)
return approveCell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath.row == 0 {
return YHUploadCertificateTitleCell.cellH
}
return YHUploadCertificateDetailCell.cellH
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if 0 <= indexPath.section && indexPath.section < items.count {
}
}
private func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> CGFloat {
return 16.0
}
private func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> CGFloat {
return 0.01
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UIView()
return view
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let view = UIView()
return view
}
}
//
// YHUploadCertificateDetailCell.swift
// galaxy
//
// Created by davidhuangA on 2024/8/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHUploadCertificateDetailCell: UITableViewCell {
static let cellReuseIdentifier = "YHUploadCertificateDetailCell"
static let cellH : CGFloat = 69.0
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
return view
}()
lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
return view
}()
lazy var titleLable: UILabel = {
let label = UILabel()
label.textColor = UIColor.mainTextColor
label.font = UIFont.PFSC_R(ofSize:14)
label.text = "马尔扎哈"
return label
}()
lazy var statusLable: UILabel = {
let label = UILabel()
label.textColor = UIColor.brandMainColor
label.font = UIFont.PFSC_R(ofSize:14)
label.text = "待上传"
return label
}()
lazy var statusImageView: UIImageView = {
let view = UIImageView(image: UIImage(named: "blue_right_arrow"))
return view
}()
var isLastCell : Bool = false {
didSet {
updateCell()
}
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
}
private extension YHUploadCertificateDetailCell {
func updateCell() {
if isLastCell {
let corner = UIRectCorner(rawValue: UIRectCorner.bottomLeft.rawValue | UIRectCorner.bottomRight.rawValue)
let path = UIBezierPath(roundedRect:bounds,byRoundingCorners: corner,cornerRadii:CGSizeMake(8, 8));
let layer = CAShapeLayer();
layer.frame = whiteContentView.bounds;
layer.path = path.cgPath;
whiteContentView.layer.mask = layer;
whiteContentView.clipsToBounds = true
lineView.isHidden = true
} else {
whiteContentView.layer.mask = nil;
lineView.isHidden = false
}
}
func setupUI() {
selectionStyle = .none
backgroundColor = .clear
contentView.backgroundColor = .clear
contentView.addSubview(whiteContentView)
whiteContentView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
whiteContentView.addSubview(lineView)
lineView.snp.makeConstraints { make in
make.bottom.equalToSuperview()
make.left.equalTo(18)
make.right.equalTo(-18)
make.height.equalTo(1)
}
whiteContentView.addSubview(statusImageView)
statusImageView.snp.makeConstraints { make in
make.right.equalTo(-18)
make.width.height.equalTo(20)
make.centerY.equalToSuperview()
}
whiteContentView.addSubview(statusLable)
statusLable.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.right.equalTo(statusImageView.snp.left)
make.height.equalTo(20)
}
whiteContentView.addSubview(titleLable)
titleLable.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.left.equalToSuperview().offset(18)
make.height.equalTo(20)
}
}
}
//
// YHUploadCertificateTitleCell.swift
// galaxy
//
// Created by davidhuangA on 2024/8/20.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHUploadCertificateTitleCell: UITableViewCell {
static let cellReuseIdentifier = "YHUploadCertificateTitleCell"
static let cellH : CGFloat = 53.0
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
return view
}()
lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
return view
}()
lazy var titleLable: UILabel = {
let label = UILabel()
label.textColor = UIColor.mainTextColor
label.font = UIFont.PFSC_M(ofSize:17)
label.text = "小白条"
return label
}()
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
func setupUI() {
selectionStyle = .none
backgroundColor = .clear
contentView.backgroundColor = .clear
contentView.addSubview(whiteContentView)
whiteContentView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
whiteContentView.addSubview(lineView)
lineView.snp.makeConstraints { make in
make.bottom.equalToSuperview()
make.left.equalTo(18)
make.right.equalTo(-18)
make.height.equalTo(1)
}
whiteContentView.addSubview(titleLable)
titleLable.snp.makeConstraints { make in
make.bottom.equalTo(lineView.snp.top)
make.left.equalTo(18)
make.right.equalTo(-18)
make.top.equalToSuperview()
}
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
let corner = UIRectCorner(rawValue: UIRectCorner.topLeft.rawValue | UIRectCorner.topRight.rawValue)
let path = UIBezierPath(roundedRect:self.bounds,byRoundingCorners: corner,cornerRadii:CGSizeMake(8, 8));
let layer = CAShapeLayer();
layer.frame = CGRect(x: 0, y: 0, width: KScreenWidth - 16 * 2, height: YHUploadCertificateTitleCell.cellH);
layer.path = path.cgPath;
self.whiteContentView.layer.mask = layer;
self.whiteContentView.clipsToBounds = true
}
}
}
......@@ -10,7 +10,7 @@ import UIKit
class YHVisaPaymentVC: YHBaseViewController {
var items: [String] = ["1", "1"] //for test hjl
var items: [String] = ["1", "1","1"] //for test hjl
lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped)
......@@ -25,7 +25,7 @@ class YHVisaPaymentVC: YHBaseViewController {
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell")
tableView.register(YHVisaPaymentTipsCell.self, forCellReuseIdentifier: YHVisaPaymentTipsCell.cellReuseIdentifier)
tableView.register(YHVisaPayTypeCell.self, forCellReuseIdentifier: YHVisaPayTypeCell.cellReuseIdentifier)
tableView.register(YHPayMembersCell.self, forCellReuseIdentifier: YHPayMembersCell.cellReuseIdentifier)
return tableView
}()
......@@ -104,7 +104,7 @@ private extension YHVisaPaymentVC {
extension YHVisaPaymentVC: UITableViewDelegate, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return 2
return 3
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
......@@ -116,6 +116,15 @@ extension YHVisaPaymentVC: UITableViewDelegate, UITableViewDataSource {
if indexPath.section == 0 {
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)
return approveCell
} else if indexPath.section == 2 {
let approveCell = tableView.dequeueReusableCell(withIdentifier: YHPayMembersCell.cellReuseIdentifier, for: indexPath)
return approveCell
} else {
}
}
......
//
// YHPayMemberContentItem.swift
// galaxy
//
// Created by davidhuangA on 2024/8/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHPayMemberContentItem: UIView {
lazy var titleLabel: UILabel = {
let label = UILabel()
label.font = UIFont.PFSC_R(ofSize: 13)
label.text = "档案号:"
label.textColor = UIColor.mainTextColor70
return label
}()
lazy var detailLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 13)
label.text = "TQEN-03709888-23"
label.textColor = UIColor.mainTextColor
label.textAlignment = .right
return label
}()
lazy var copyBtn: UIButton = {
let btn = UIButton()
btn.setTitle("复制", for: .normal)
btn.setTitleColor(UIColor.mainTextColor, for: .normal)
btn.titleLabel?.font = UIFont.PFSC_M(ofSize: 10)
btn.backgroundColor = UIColor.separatorColor
btn.layer.cornerRadius = 9.0 //36 18
btn.clipsToBounds = true
btn.addTarget(self, action: #selector(clickCopyBtn), for: .touchUpInside)
btn.layer.zPosition = 10
return btn
}()
//用来自动布局
lazy var fakeView: UIView = {
let view = UIView()
return view
}()
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
private extension YHPayMemberContentItem {
@objc func clickCopyBtn() {
UIPasteboard.general.string = "test_test"
YHHUD.flash(message: "已复制档案号")
}
func setupUI() {
backgroundColor = .clear
}
}
extension YHPayMemberContentItem {
func updateUI(title : String = "",detail : String = "",oneLine : Bool = true, showBtn : Bool = false) {
titleLabel.removeFromSuperview()
detailLabel.removeFromSuperview()
copyBtn.removeFromSuperview()
addSubview(titleLabel)
addSubview(detailLabel)
addSubview(fakeView)
titleLabel.text = title
detailLabel.text = detail
if oneLine {
copyBtn.setTitle("复制", for: .normal)
detailLabel.textAlignment = .right
titleLabel.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.height.equalTo(18)
make.left.equalToSuperview()
}
if showBtn {
addSubview(copyBtn)
copyBtn.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.height.equalTo(18)
make.width.equalTo(36)
make.right.equalToSuperview()
}
detailLabel.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.height.equalTo(18)
make.left.equalTo(titleLabel.snp.right).offset(kMargin)
make.right.equalToSuperview().offset(-42)
}
} else {
detailLabel.snp.makeConstraints { make in
make.centerY.equalToSuperview()
make.height.equalTo(18)
make.left.equalTo(titleLabel.snp.right).offset(kMargin)
make.right.equalToSuperview()
}
}
} else {
detailLabel.textAlignment = .left
copyBtn.setTitle("查看", for: .normal)
titleLabel.snp.makeConstraints { make in
make.top.equalToSuperview()
make.height.equalTo(18)
make.left.equalToSuperview()
make.right.equalToSuperview()
}
if showBtn {
detailLabel.snp.makeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom).offset(8)
make.height.equalTo(20)
make.left.equalToSuperview()
make.right.equalToSuperview().offset(-42)
}
addSubview(copyBtn)
copyBtn.snp.makeConstraints { make in
make.centerY.equalTo(detailLabel.snp.centerY)
make.height.equalTo(18)
make.width.equalTo(36)
make.right.equalToSuperview()
}
} else {
detailLabel.snp.makeConstraints { make in
make.top.equalTo(titleLabel.snp.bottom).offset(8)
make.height.equalTo(20)
make.left.equalToSuperview()
make.right.equalToSuperview()
}
}
}
fakeView.snp.makeConstraints { make in
make.top.equalTo(detailLabel.snp.bottom)
make.left.right.equalToSuperview()
make.height.equalTo(1)
make.bottom.equalToSuperview()
}
copyBtn.YH_clickEdgeInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
}
}
//
// YHPayMemberContentItems.swift
// galaxy
//
// Created by davidhuangA on 2024/8/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHPayMemberContentItems: UIView {
//用来自动布局
lazy var fakeView: UIView = {
let view = UIView()
return view
}()
lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
return view
}()
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .clear
return view
}()
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
private extension YHPayMemberContentItems {
func setupUI() {
backgroundColor = .contentBkgColor
layer.cornerRadius = kCornerRadius3
clipsToBounds = true
}
}
extension YHPayMemberContentItems {
func updateUI( type : Int) {
whiteContentView.removeSubviews()
removeSubviews()
addSubview(whiteContentView)
whiteContentView.snp.makeConstraints { make in
make.top.bottom.equalToSuperview()
make.right.equalToSuperview().offset(-14)
make.left.equalToSuperview().offset(14)
}
let item = YHPayMemberContentItem()
whiteContentView.addSubview(item)
item.snp.makeConstraints { make in
make.top.equalTo(kMargin)
make.left.right.equalToSuperview()
}
item.updateUI(title: "档案号:",detail: "TQEN-03709888-23",showBtn: true)
var lastView : UIView = item
if type == 1 || type == 2 {
do {
let item = YHPayMemberContentItem()
whiteContentView.addSubview(item)
item.snp.makeConstraints { make in
make.top.equalTo(lastView.snp.bottom).offset(kMargin)
make.left.right.equalToSuperview()
}
item.updateUI(title: "可缴费时间段:",detail: "2023.10.1 - 2023.11.20",showBtn: false)
lastView = item
}
do {
let item = YHPayMemberContentItem()
whiteContentView.addSubview(item)
item.snp.makeConstraints { make in
make.top.equalTo(lastView.snp.bottom).offset(kMargin)
make.left.right.equalToSuperview()
}
item.updateUI(title: "缴费金额:",detail: "230港币(≈211.89人民币)",showBtn: false)
lastView = item
}
} else if type == 3 {
do {
let item = YHPayMemberContentItem()
whiteContentView.addSubview(item)
item.snp.makeConstraints { make in
make.top.equalTo(lastView.snp.bottom).offset(kMargin)
make.left.right.equalToSuperview()
}
item.updateUI(title: "缴费金额:",detail: "230港币(≈211.89人民币)",showBtn: false)
lastView = item
}
do {
whiteContentView.addSubview(lineView)
lineView.snp.makeConstraints { make in
make.top.equalTo(lastView.snp.bottom).offset(kMargin)
make.height.equalTo(1)
make.left.right.equalToSuperview()
}
lastView = lineView
}
do {
let item = YHPayMemberContentItem()
whiteContentView.addSubview(item)
item.snp.makeConstraints { make in
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)
lastView = item
}
}
whiteContentView.addSubview(fakeView)
fakeView.snp.makeConstraints { make in
make.top.equalTo(lastView.snp.bottom).offset(kMargin)
make.height.equalTo(1)
make.left.bottom.right.equalToSuperview()
}
}
}
//
// YHPayMemberItemsView.swift
// galaxy
//
// Created by davidhuangA on 2024/8/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import AttributedString
class YHPayMemberItemsView: UIView {
lazy var sectionItem: YHPayMemberSectionItem = {
let view = YHPayMemberSectionItem()
return view
}()
lazy var contentItems: YHPayMemberContentItems = {
let view = YHPayMemberContentItems()
return view
}()
lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = .separatorColor
return view
}()
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
private extension YHPayMemberItemsView {
func setupUI() {
updateUI() //for test hjl
}
}
extension YHPayMemberItemsView {
func updateUI(type : Int = 1) {
removeSubviews()
addSubview(sectionItem)
sectionItem.snp.makeConstraints { make in
make.top.left.right.equalToSuperview()
make.height.equalTo(YHPayMemberSectionItem.viewH)
}
sectionItem.updateUI(type: type)
addSubview(contentItems)
contentItems.snp.makeConstraints { make in
make.top.equalTo(sectionItem.snp.bottom).offset(kMargin)
make.left.equalToSuperview()
make.right.equalToSuperview()
}
contentItems.updateUI(type: type)
addSubview(lineView)
lineView.snp.makeConstraints { make in
make.top.equalTo(contentItems.snp.bottom).offset(20)
make.left.right.equalToSuperview()
make.height.equalTo(1)
make.bottom.equalToSuperview()
}
if type == 3 {
lineView.isHidden = true
} else {
lineView.isHidden = false
}
}
}
//
// YHPayMemberSectionItem.swift
// galaxy
//
// Created by davidhuangA on 2024/8/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHPayMemberSectionItem: UIView {
static let viewH : CGFloat = 22.0
lazy var tagView: UIView = {
let view = UIView()
view.backgroundColor = .brandMainColor
return view
}()
lazy var titleLabel: UILabel = {
let label = UILabel()
label.font = UIFont.PFSC_M(ofSize: 16)
label.text = "张全蛋"
return label
}()
lazy var detailLabel: UILabel = {
let label = UILabel()
label.numberOfLines = 0
label.font = UIFont.PFSC_M(ofSize: 13)
label.text = "已缴费"
label.textColor = UIColor.mainTextColor50
label.textAlignment = .right
return label
}()
override init(frame: CGRect) {
super.init(frame: frame)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
private extension YHPayMemberSectionItem {
func setupUI() {
addSubview(tagView)
addSubview(titleLabel)
addSubview(detailLabel)
tagView.snp.makeConstraints { make in
make.left.equalToSuperview()
make.centerY.equalToSuperview()
make.height.equalTo(14)
make.width.equalTo(3)
}
detailLabel.snp.makeConstraints { make in
make.right.equalToSuperview()
make.centerY.equalToSuperview()
make.height.equalTo(20)
}
titleLabel.snp.makeConstraints { make in
make.left.equalTo(tagView.snp.right).offset(6)
make.centerY.equalToSuperview()
make.right.equalTo(detailLabel.snp.left).offset(-kMargin)
make.height.equalTo(20)
}
}
}
extension YHPayMemberSectionItem {
func updateUI(type : Int) {
var txt = "待缴费"
var color : UIColor = UIColor.failColor
if type == 1 {
txt = "待缴费"
color = .brandMainColor
} else if type == 2 {
txt = "已过期"
color = .failColor
} else if type == 3 {
txt = "已缴费"
color = .mainTextColor50
}
detailLabel.text = txt
detailLabel.textColor = color
}
}
//
// YHPayMembersCell.swift
// galaxy
//
// Created by davidhuangA on 2024/8/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import AttributedString
class YHPayMembersCell: UITableViewCell {
static let cellReuseIdentifier = "YHPayMembersCell"
lazy var whiteContentView: UIView = {
let view = UIView()
view.backgroundColor = .white
view.layer.cornerRadius = kCornerRadius6
view.clipsToBounds = true
view.backgroundColor = .white
return view
}()
lazy var tipsLable: UILabel = {
let label = UILabel()
label.numberOfLines = 0
label.textColor = UIColor.yhGreyColor
label.font = UIFont.PFSC_M(ofSize:14)
label.text = "温馨提示:若此处缴费状态和港府官网显示不一致,可能存在延迟更新状态,可尝试更新缴费结果,缴费状态以港府为准"
return label
}()
//用来自动布局
lazy var fakeView: UIView = {
let view = UIView()
return view
}()
private var arrOtherView : [UIView] = []
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
}
private extension YHPayMembersCell {
func setupUI() {
selectionStyle = .none
backgroundColor = .clear
contentView.backgroundColor = .clear
contentView.addSubview(whiteContentView)
whiteContentView.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
//
let label = UILabel()
label.textColor = UIColor.mainTextColor
label.font = UIFont.PFSC_M(ofSize:17)
label.text = "缴费成员"
whiteContentView.addSubview(label)
label.snp.makeConstraints { make in
make.top.equalTo(kMargin)
make.left.equalTo(kMargin)
make.height.equalTo(24)
}
let line = UIView()
line.backgroundColor = .separatorColor
whiteContentView.addSubview(line)
line.snp.makeConstraints { make in
make.top.equalTo(label.snp.bottom).offset(12)
make.left.equalTo(kMargin)
make.right.equalTo(-kMargin)
make.height.equalTo(1)
}
whiteContentView.addSubview(tipsLable)
tipsLable.snp.makeConstraints { make in
make.top.equalTo(line.snp.bottom).offset(kMargin)
make.left.equalTo(kMargin)
make.right.equalToSuperview().offset(-kMargin)
}
let a: ASAttributedString = .init("温馨提示:若此处缴费状态和港府官网显示不一致,可能存在延迟更新状态,", .font(UIFont.PFSC_R(ofSize: 12)),.foreground(UIColor.yhGreyColor))
let aa: ASAttributedString = .init(NSAttributedString(string: "可尝试更新缴费结果"), .font(UIFont.PFSC_R(ofSize: 12)),.foreground(UIColor.brandMainColor))
let aaa: ASAttributedString = .init(",缴费状态以港府为准", .font(UIFont.PFSC_R(ofSize: 12)),.foreground(UIColor.yhGreyColor))
tipsLable.attributed.text = a + aa + aaa
whiteContentView.addSubview(fakeView)
fakeView.snp.makeConstraints { make in
make.top.equalTo(tipsLable.snp.bottom).offset(kMargin)
make.left.equalTo(kMargin)
make.right.equalToSuperview().offset(-kMargin)
make.bottom.equalToSuperview()
}
updateUI() //for test hjl
}
}
private extension YHPayMembersCell {
func updateUI() {
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() {
let view = YHPayMemberItemsView()
whiteContentView.addSubview(view)
view.snp.makeConstraints { make in
make.top.equalTo(lastView.snp.bottom).offset(20)
make.left.equalTo(kMargin)
make.right.equalToSuperview().offset(-kMargin)
}
view.updateUI(type: index + 1)
lastView = view
arrOtherView.append(view)
}
fakeView.snp.makeConstraints { make in
make.top.equalTo(lastView.snp.bottom).offset(kMargin)
make.left.equalTo(kMargin)
make.right.equalToSuperview().offset(-kMargin)
make.height.equalTo(1)
make.bottom.equalToSuperview()
}
}
}
......@@ -19,5 +19,6 @@ class YHFileListModel: SmartCodable {
var arrTxt : [String] = [] //type=1时使用的内容
required init() {
}
}
......@@ -132,11 +132,14 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
view.collectClick = {
[weak self] in
guard let self = self else { return }
if !checkLogin() { return }
let vc = YHMyLikeActivityViewController()
vc.myDefaultNavItemIndex = 1
self.navigationController?.pushViewController(vc)
print("收藏")
// if !checkLogin() { return }
// let vc = YHMyLikeActivityViewController()
// vc.myDefaultNavItemIndex = 1
// self.navigationController?.pushViewController(vc)
// print("收藏")
let vc = YHUploadCertificateVC()
self.navigationController?.pushViewController(vc) //for test hjl
}
view.recentScanClick = {
[weak self] in
......@@ -342,7 +345,7 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource {
if true {
// test dy
let vc = YHCertificateAppointViewController()
let vc = YHFamilyInfoConfirmViewController()
self.navigationController?.pushViewController(vc)
return
}
......
......@@ -403,4 +403,17 @@ class YHAllApiName {
static let sendMail = "infoflow/file/send-mail"
}
struct MakeCertificate {
// 获取香港服务列表
static let servicelist = "super-app/order/customer/journey/journey-service"
}
struct FamilyInfoConfirm {
// 获取获批者家庭信息
static let familyInfo = "super-app/order/family/information/obtain"
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group 2033195466@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 2033195466@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group 2033195465@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 2033195465@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "箭头中@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "箭头中@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "箭头中@3x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "箭头中@2x 1.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Mask group@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Mask group@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group 2033195689@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 2033195689@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