Commit 223f6186356ce0e7ea5d3771b8133ad31d5d54a6
1 parent
b2907526
证书数据关联 , 上传证书等页面
Showing
24 changed files
with
1182 additions
and
4 deletions
metaCode.xcodeproj/project.pbxproj
| @@ -83,6 +83,10 @@ | @@ -83,6 +83,10 @@ | ||
| 83 | 192ED4742C521F4D0057244C /* CNLiveVocationalCertifiteCollectionViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 192ED4732C521F4D0057244C /* CNLiveVocationalCertifiteCollectionViewLayout.swift */; }; | 83 | 192ED4742C521F4D0057244C /* CNLiveVocationalCertifiteCollectionViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 192ED4732C521F4D0057244C /* CNLiveVocationalCertifiteCollectionViewLayout.swift */; }; |
| 84 | 192ED4762C524EA10057244C /* CNLiveVitaeCertificateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 192ED4752C524EA10057244C /* CNLiveVitaeCertificateModel.swift */; }; | 84 | 192ED4762C524EA10057244C /* CNLiveVitaeCertificateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 192ED4752C524EA10057244C /* CNLiveVitaeCertificateModel.swift */; }; |
| 85 | 192ED4782C5339D50057244C /* CNLiveCertificateCollectionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 192ED4772C5339D50057244C /* CNLiveCertificateCollectionCell.swift */; }; | 85 | 192ED4782C5339D50057244C /* CNLiveCertificateCollectionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 192ED4772C5339D50057244C /* CNLiveCertificateCollectionCell.swift */; }; |
| 86 | + 192ED47A2C5383340057244C /* CNLiveVitaeAddCertificateController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 192ED4792C5383340057244C /* CNLiveVitaeAddCertificateController.swift */; }; | ||
| 87 | + 192ED47C2C538C970057244C /* CNLiveVitaeCertificateAddPhotoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 192ED47B2C538C970057244C /* CNLiveVitaeCertificateAddPhotoCell.swift */; }; | ||
| 88 | + 192ED47E2C538CA30057244C /* CNLiveVitaeCertificateAddInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 192ED47D2C538CA30057244C /* CNLiveVitaeCertificateAddInfoCell.swift */; }; | ||
| 89 | + 192ED4802C5488AD0057244C /* CNLiveVitaeCerAddPhotoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 192ED47F2C5488AD0057244C /* CNLiveVitaeCerAddPhotoController.swift */; }; | ||
| 86 | 1938BD172B3D6C7F00390A34 /* CNLiveAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1938BD162B3D6C7F00390A34 /* CNLiveAuthViewController.swift */; }; | 90 | 1938BD172B3D6C7F00390A34 /* CNLiveAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1938BD162B3D6C7F00390A34 /* CNLiveAuthViewController.swift */; }; |
| 87 | 1938BD202B46799A00390A34 /* CNLivePlayletHomePageController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1938BD1F2B46799A00390A34 /* CNLivePlayletHomePageController.swift */; }; | 91 | 1938BD202B46799A00390A34 /* CNLivePlayletHomePageController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1938BD1F2B46799A00390A34 /* CNLivePlayletHomePageController.swift */; }; |
| 88 | 1938BD222B467C1700390A34 /* CNLivePlayletHomePageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1938BD212B467C1700390A34 /* CNLivePlayletHomePageCell.swift */; }; | 92 | 1938BD222B467C1700390A34 /* CNLivePlayletHomePageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1938BD212B467C1700390A34 /* CNLivePlayletHomePageCell.swift */; }; |
| @@ -408,6 +412,10 @@ | @@ -408,6 +412,10 @@ | ||
| 408 | 192ED4732C521F4D0057244C /* CNLiveVocationalCertifiteCollectionViewLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveVocationalCertifiteCollectionViewLayout.swift; sourceTree = "<group>"; }; | 412 | 192ED4732C521F4D0057244C /* CNLiveVocationalCertifiteCollectionViewLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveVocationalCertifiteCollectionViewLayout.swift; sourceTree = "<group>"; }; |
| 409 | 192ED4752C524EA10057244C /* CNLiveVitaeCertificateModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveVitaeCertificateModel.swift; sourceTree = "<group>"; }; | 413 | 192ED4752C524EA10057244C /* CNLiveVitaeCertificateModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveVitaeCertificateModel.swift; sourceTree = "<group>"; }; |
| 410 | 192ED4772C5339D50057244C /* CNLiveCertificateCollectionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveCertificateCollectionCell.swift; sourceTree = "<group>"; }; | 414 | 192ED4772C5339D50057244C /* CNLiveCertificateCollectionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveCertificateCollectionCell.swift; sourceTree = "<group>"; }; |
| 415 | + 192ED4792C5383340057244C /* CNLiveVitaeAddCertificateController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveVitaeAddCertificateController.swift; sourceTree = "<group>"; }; | ||
| 416 | + 192ED47B2C538C970057244C /* CNLiveVitaeCertificateAddPhotoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveVitaeCertificateAddPhotoCell.swift; sourceTree = "<group>"; }; | ||
| 417 | + 192ED47D2C538CA30057244C /* CNLiveVitaeCertificateAddInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveVitaeCertificateAddInfoCell.swift; sourceTree = "<group>"; }; | ||
| 418 | + 192ED47F2C5488AD0057244C /* CNLiveVitaeCerAddPhotoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveVitaeCerAddPhotoController.swift; sourceTree = "<group>"; }; | ||
| 411 | 1938BD162B3D6C7F00390A34 /* CNLiveAuthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveAuthViewController.swift; sourceTree = "<group>"; }; | 419 | 1938BD162B3D6C7F00390A34 /* CNLiveAuthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveAuthViewController.swift; sourceTree = "<group>"; }; |
| 412 | 1938BD1F2B46799A00390A34 /* CNLivePlayletHomePageController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLivePlayletHomePageController.swift; sourceTree = "<group>"; }; | 420 | 1938BD1F2B46799A00390A34 /* CNLivePlayletHomePageController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLivePlayletHomePageController.swift; sourceTree = "<group>"; }; |
| 413 | 1938BD212B467C1700390A34 /* CNLivePlayletHomePageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLivePlayletHomePageCell.swift; sourceTree = "<group>"; }; | 421 | 1938BD212B467C1700390A34 /* CNLivePlayletHomePageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLivePlayletHomePageCell.swift; sourceTree = "<group>"; }; |
| @@ -781,6 +789,8 @@ | @@ -781,6 +789,8 @@ | ||
| 781 | 192ED46F2C5217CF0057244C /* CNLiveVocationalCertificateFirCell.swift */, | 789 | 192ED46F2C5217CF0057244C /* CNLiveVocationalCertificateFirCell.swift */, |
| 782 | 192ED4732C521F4D0057244C /* CNLiveVocationalCertifiteCollectionViewLayout.swift */, | 790 | 192ED4732C521F4D0057244C /* CNLiveVocationalCertifiteCollectionViewLayout.swift */, |
| 783 | 192ED4772C5339D50057244C /* CNLiveCertificateCollectionCell.swift */, | 791 | 192ED4772C5339D50057244C /* CNLiveCertificateCollectionCell.swift */, |
| 792 | + 192ED47B2C538C970057244C /* CNLiveVitaeCertificateAddPhotoCell.swift */, | ||
| 793 | + 192ED47D2C538CA30057244C /* CNLiveVitaeCertificateAddInfoCell.swift */, | ||
| 784 | ); | 794 | ); |
| 785 | path = Vitae; | 795 | path = Vitae; |
| 786 | sourceTree = "<group>"; | 796 | sourceTree = "<group>"; |
| @@ -1166,6 +1176,8 @@ | @@ -1166,6 +1176,8 @@ | ||
| 1166 | 192ED4642C4DF6340057244C /* CNLiveDigitalResumeInfoSelectAddressController.swift */, | 1176 | 192ED4642C4DF6340057244C /* CNLiveDigitalResumeInfoSelectAddressController.swift */, |
| 1167 | 192ED4662C4F47E50057244C /* CNLiveSelectHangYeController.swift */, | 1177 | 192ED4662C4F47E50057244C /* CNLiveSelectHangYeController.swift */, |
| 1168 | 192ED46C2C51FA360057244C /* CNLiveVitaeVocationalCertificateController.swift */, | 1178 | 192ED46C2C51FA360057244C /* CNLiveVitaeVocationalCertificateController.swift */, |
| 1179 | + 192ED4792C5383340057244C /* CNLiveVitaeAddCertificateController.swift */, | ||
| 1180 | + 192ED47F2C5488AD0057244C /* CNLiveVitaeCerAddPhotoController.swift */, | ||
| 1169 | ); | 1181 | ); |
| 1170 | path = DigitalAuth; | 1182 | path = DigitalAuth; |
| 1171 | sourceTree = "<group>"; | 1183 | sourceTree = "<group>"; |
| @@ -1984,6 +1996,7 @@ | @@ -1984,6 +1996,7 @@ | ||
| 1984 | 1938BD172B3D6C7F00390A34 /* CNLiveAuthViewController.swift in Sources */, | 1996 | 1938BD172B3D6C7F00390A34 /* CNLiveAuthViewController.swift in Sources */, |
| 1985 | 19864E412BF6090400586E72 /* CNLiveDuanJuDetailCell.swift in Sources */, | 1997 | 19864E412BF6090400586E72 /* CNLiveDuanJuDetailCell.swift in Sources */, |
| 1986 | 79F4B11C2A33036E00993C03 /* CNLiveMineInfoAlertView.swift in Sources */, | 1998 | 79F4B11C2A33036E00993C03 /* CNLiveMineInfoAlertView.swift in Sources */, |
| 1999 | + 192ED47C2C538C970057244C /* CNLiveVitaeCertificateAddPhotoCell.swift in Sources */, | ||
| 1987 | 79BB96A82AF223FB00AEA4AC /* CNLiveConfigAlertManager.swift in Sources */, | 2000 | 79BB96A82AF223FB00AEA4AC /* CNLiveConfigAlertManager.swift in Sources */, |
| 1988 | 19BB1FF02AF0E5B30094D962 /* CNLiveShopDetailModel.swift in Sources */, | 2001 | 19BB1FF02AF0E5B30094D962 /* CNLiveShopDetailModel.swift in Sources */, |
| 1989 | 1938BD382B4BDC2500390A34 /* CNLiveAlbumImageCell.swift in Sources */, | 2002 | 1938BD382B4BDC2500390A34 /* CNLiveAlbumImageCell.swift in Sources */, |
| @@ -2096,6 +2109,7 @@ | @@ -2096,6 +2109,7 @@ | ||
| 2096 | 19B153CB2BC3E1870018906C /* CNLiveShopPayController.swift in Sources */, | 2109 | 19B153CB2BC3E1870018906C /* CNLiveShopPayController.swift in Sources */, |
| 2097 | 191733662B39237D007BCC04 /* CNLiveShopGoodsManageListTableViewCell.swift in Sources */, | 2110 | 191733662B39237D007BCC04 /* CNLiveShopGoodsManageListTableViewCell.swift in Sources */, |
| 2098 | 793CAF522A58FCA200882EF4 /* CNLiveMineExchangeViewController.swift in Sources */, | 2111 | 793CAF522A58FCA200882EF4 /* CNLiveMineExchangeViewController.swift in Sources */, |
| 2112 | + 192ED4802C5488AD0057244C /* CNLiveVitaeCerAddPhotoController.swift in Sources */, | ||
| 2099 | 1917334E2B2C1A08007BCC04 /* CNLiveSelectCouponTapView.swift in Sources */, | 2113 | 1917334E2B2C1A08007BCC04 /* CNLiveSelectCouponTapView.swift in Sources */, |
| 2100 | 19C0F76F2BDB4CE10097CC8F /* CNBindingManageModel.swift in Sources */, | 2114 | 19C0F76F2BDB4CE10097CC8F /* CNBindingManageModel.swift in Sources */, |
| 2101 | 191733272B148BB1007BCC04 /* CNLivePlayerFastForwardPreviewView.swift in Sources */, | 2115 | 191733272B148BB1007BCC04 /* CNLivePlayerFastForwardPreviewView.swift in Sources */, |
| @@ -2193,6 +2207,7 @@ | @@ -2193,6 +2207,7 @@ | ||
| 2193 | 79396EED2A319F220053E1AF /* NSObject+CNLiveExtensions.swift in Sources */, | 2207 | 79396EED2A319F220053E1AF /* NSObject+CNLiveExtensions.swift in Sources */, |
| 2194 | 1917331B2B10A0EF007BCC04 /* CNLivePlayerLoadingView.swift in Sources */, | 2208 | 1917331B2B10A0EF007BCC04 /* CNLivePlayerLoadingView.swift in Sources */, |
| 2195 | 19FA201B2AE60423001F7186 /* CNLiveDownSlideModelLayout.swift in Sources */, | 2209 | 19FA201B2AE60423001F7186 /* CNLiveDownSlideModelLayout.swift in Sources */, |
| 2210 | + 192ED47E2C538CA30057244C /* CNLiveVitaeCertificateAddInfoCell.swift in Sources */, | ||
| 2196 | 7C4931312A2F142F000E44B4 /* CNHomePageBackgroupView.swift in Sources */, | 2211 | 7C4931312A2F142F000E44B4 /* CNHomePageBackgroupView.swift in Sources */, |
| 2197 | 19BB1FF22AF21A950094D962 /* CNLliveShopDetailBannerCell.swift in Sources */, | 2212 | 19BB1FF22AF21A950094D962 /* CNLliveShopDetailBannerCell.swift in Sources */, |
| 2198 | 1938BD432B4E34B200390A34 /* CNHomepageDuanJuDetailViewController.swift in Sources */, | 2213 | 1938BD432B4E34B200390A34 /* CNHomepageDuanJuDetailViewController.swift in Sources */, |
| @@ -2259,6 +2274,7 @@ | @@ -2259,6 +2274,7 @@ | ||
| 2259 | 191733192B10A05D007BCC04 /* CNLivePlayerProgressView.swift in Sources */, | 2274 | 191733192B10A05D007BCC04 /* CNLivePlayerProgressView.swift in Sources */, |
| 2260 | 79803E272AD68D3100F05F68 /* CNLiveMineShopViewController.swift in Sources */, | 2275 | 79803E272AD68D3100F05F68 /* CNLiveMineShopViewController.swift in Sources */, |
| 2261 | 197325D22BB11C18002E41A3 /* DatabaseManager.swift in Sources */, | 2276 | 197325D22BB11C18002E41A3 /* DatabaseManager.swift in Sources */, |
| 2277 | + 192ED47A2C5383340057244C /* CNLiveVitaeAddCertificateController.swift in Sources */, | ||
| 2262 | 79803E292AD6991200F05F68 /* CNLiveMineInputMessageView.swift in Sources */, | 2278 | 79803E292AD6991200F05F68 /* CNLiveMineInputMessageView.swift in Sources */, |
| 2263 | 79282A462A2F457D00B5F8CF /* CNLiveMineViewController.swift in Sources */, | 2279 | 79282A462A2F457D00B5F8CF /* CNLiveMineViewController.swift in Sources */, |
| 2264 | 19AB90642BB412C700B6A79B /* CNLiveDownslideOperationManager.swift in Sources */, | 2280 | 19AB90642BB412C700B6A79B /* CNLiveDownslideOperationManager.swift in Sources */, |
metaCode/Classes/Main/HomePage/Controller/DigitalAuth/CNLiveDigitalResumeController.swift
| @@ -20,6 +20,8 @@ enum CNLiveResumeType { | @@ -20,6 +20,8 @@ enum CNLiveResumeType { | ||
| 20 | class CNLiveDigitalResumeController:CNLiveBaseViewController,UITableViewDataSource, UITableViewDelegate{ | 20 | class CNLiveDigitalResumeController:CNLiveBaseViewController,UITableViewDataSource, UITableViewDelegate{ |
| 21 | 21 | ||
| 22 | var resumeType:CNLiveResumeType = .normal | 22 | var resumeType:CNLiveResumeType = .normal |
| 23 | + var certificatesCount:Int = 0//证书数量 | ||
| 24 | + | ||
| 23 | //简历model | 25 | //简历model |
| 24 | var vitaeModel:CNLiveVitaeModel? | 26 | var vitaeModel:CNLiveVitaeModel? |
| 25 | lazy var moreNavBtn: UIButton = { | 27 | lazy var moreNavBtn: UIButton = { |
| @@ -67,6 +69,7 @@ class CNLiveDigitalResumeController:CNLiveBaseViewController,UITableViewDataSour | @@ -67,6 +69,7 @@ class CNLiveDigitalResumeController:CNLiveBaseViewController,UITableViewDataSour | ||
| 67 | override func viewWillAppear(_ animated: Bool) { | 69 | override func viewWillAppear(_ animated: Bool) { |
| 68 | super.viewWillAppear(animated) | 70 | super.viewWillAppear(animated) |
| 69 | self.getVitae() | 71 | self.getVitae() |
| 72 | + self.getCetList() | ||
| 70 | } | 73 | } |
| 71 | 74 | ||
| 72 | override func viewDidLoad() { | 75 | override func viewDidLoad() { |
| @@ -117,6 +120,7 @@ class CNLiveDigitalResumeController:CNLiveBaseViewController,UITableViewDataSour | @@ -117,6 +120,7 @@ class CNLiveDigitalResumeController:CNLiveBaseViewController,UITableViewDataSour | ||
| 117 | let cell = CNLiveDigitalResumeCell() | 120 | let cell = CNLiveDigitalResumeCell() |
| 118 | return cell | 121 | return cell |
| 119 | } | 122 | } |
| 123 | + cell.certificatesCount = self.certificatesCount | ||
| 120 | if self.vitaeModel?.vitae?.id ?? 0 > 0{ | 124 | if self.vitaeModel?.vitae?.id ?? 0 > 0{ |
| 121 | cell.vitaeModel = self.vitaeModel! | 125 | cell.vitaeModel = self.vitaeModel! |
| 122 | } | 126 | } |
| @@ -150,6 +154,21 @@ class CNLiveDigitalResumeController:CNLiveBaseViewController,UITableViewDataSour | @@ -150,6 +154,21 @@ class CNLiveDigitalResumeController:CNLiveBaseViewController,UITableViewDataSour | ||
| 150 | self.show17Alert() | 154 | self.show17Alert() |
| 151 | } | 155 | } |
| 152 | 156 | ||
| 157 | + // MARK: - 获取证书数量 | ||
| 158 | + func getCetList(){ | ||
| 159 | + let vsid = UserInfoManager.shared.userInfo.currentUser?.vsid ?? "" | ||
| 160 | + CNLiveVitaeViewModel.getCerList(vsid: vsid, page: 1, pageSize: 100){ result, respStatue in | ||
| 161 | + if respStatue == .success{ | ||
| 162 | + if let res = result as? [CNLiveVitaeCertificateModel]{ | ||
| 163 | + self.certificatesCount = res.count | ||
| 164 | + self.tableView.reloadData() | ||
| 165 | + } | ||
| 166 | + }else{ | ||
| 167 | + showMessage(message: "数据异常") | ||
| 168 | + } | ||
| 169 | + | ||
| 170 | + } | ||
| 171 | + } | ||
| 153 | // MARK: - 获取简历数据 | 172 | // MARK: - 获取简历数据 |
| 154 | func getVitae(){ | 173 | func getVitae(){ |
| 155 | 174 |
metaCode/Classes/Main/HomePage/Controller/DigitalAuth/CNLiveVitaeAddCertificateController.swift
0 → 100644
| 1 | +// | ||
| 2 | +// CNLiveVitaeAddCertificateController.swift | ||
| 3 | +// metaCode | ||
| 4 | +// | ||
| 5 | +// Created by zx on 2024/7/26. | ||
| 6 | +// 数字简历-添加证书页面 | ||
| 7 | + | ||
| 8 | +import Foundation | ||
| 9 | +import SnapKit | ||
| 10 | + | ||
| 11 | +class CNLiveVitaeAddCertificateController:CNLiveBaseViewController,UITableViewDataSource, UITableViewDelegate{ | ||
| 12 | + | ||
| 13 | + var isAddCerPhoto = true//true为增加证书图片 false为增加证书信息 | ||
| 14 | + var seleImage:UIImage? | ||
| 15 | + var seleImageUrl:String = "" | ||
| 16 | + lazy var dataArray :NSMutableArray = { | ||
| 17 | + let dataArray = NSMutableArray() | ||
| 18 | + return dataArray | ||
| 19 | + }() | ||
| 20 | + | ||
| 21 | + let kCNLiveVitaeCertificateAddPhotoCellIdentifier = "kCNLiveVitaeCertificateAddPhotoCellIdentifier" | ||
| 22 | + let kCNLiveVitaeCertificateAddInfoCellIdentifier = "kCNLiveVitaeCertificateAddInfoCellIdentifier" | ||
| 23 | + | ||
| 24 | + lazy var tableView : UITableView = { | ||
| 25 | + let tableView = UITableView(frame: .zero, style: .plain) | ||
| 26 | + tableView.dataSource = self | ||
| 27 | + tableView.delegate = self | ||
| 28 | + tableView.separatorStyle = .none | ||
| 29 | + tableView.tableFooterView = UIView.init() | ||
| 30 | + tableView.register(CNLiveVitaeCertificateAddPhotoCell.self, forCellReuseIdentifier: kCNLiveVitaeCertificateAddPhotoCellIdentifier) | ||
| 31 | + tableView.register(CNLiveVitaeCertificateAddInfoCell.self, forCellReuseIdentifier: kCNLiveVitaeCertificateAddInfoCellIdentifier) | ||
| 32 | + tableView.backgroundColor = .clear | ||
| 33 | + return tableView | ||
| 34 | + }() | ||
| 35 | + lazy var bottomZhiNanWhiteView :UIView = { | ||
| 36 | + let bottomNavView = UIView() | ||
| 37 | + bottomNavView.backgroundColor = .white | ||
| 38 | + return bottomNavView | ||
| 39 | + }() | ||
| 40 | + lazy var addCertificateBtn: UIButton = { | ||
| 41 | + let nextBtn = UIButton(type: .custom) | ||
| 42 | + nextBtn.setTitle("确认提交", for: .normal) | ||
| 43 | + nextBtn.setTitleColor(.white, for: .normal) | ||
| 44 | + nextBtn.backgroundColor = HexColor("#1961FE") | ||
| 45 | + nextBtn.layer.cornerRadius = 20 | ||
| 46 | + nextBtn.clipsToBounds = true | ||
| 47 | + nextBtn.addTarget(self, action: #selector(addCertificateBtnAction), for: .touchUpInside) | ||
| 48 | + return nextBtn | ||
| 49 | + }() | ||
| 50 | + lazy var chengNuoTitleLabel: UILabel = { | ||
| 51 | + let titleLabel = UILabel() | ||
| 52 | + titleLabel.textColor = HexColor("#B4B4B4") | ||
| 53 | + titleLabel.textAlignment = .center | ||
| 54 | + titleLabel.numberOfLines = 2 | ||
| 55 | + titleLabel.text = "我承诺以上所填写资料均完全真实,如被证实有虚假成分,本人愿意承担一切责任" | ||
| 56 | + titleLabel.font = Font_12 | ||
| 57 | + return titleLabel | ||
| 58 | + }() | ||
| 59 | + | ||
| 60 | + override func viewDidLoad() { | ||
| 61 | + super.viewDidLoad() | ||
| 62 | + titleName = "个人证书" | ||
| 63 | + navigationBarHidden = false | ||
| 64 | + self.initUI() | ||
| 65 | + } | ||
| 66 | + | ||
| 67 | + deinit {} | ||
| 68 | + func initUI(){ | ||
| 69 | + self.view.backgroundColor = HexColor("#F9F9F9") | ||
| 70 | + | ||
| 71 | + self.view.addSubview(self.tableView) | ||
| 72 | + self.tableView.snp.makeConstraints { make in | ||
| 73 | + make.top.equalTo(KNavigationHeight) | ||
| 74 | + make.left.right.equalToSuperview() | ||
| 75 | + make.height.equalToSuperview().offset(-KNavigationHeight-60-63) | ||
| 76 | + } | ||
| 77 | + | ||
| 78 | + self.view.addSubview(self.chengNuoTitleLabel) | ||
| 79 | + self.chengNuoTitleLabel.snp.makeConstraints { make in | ||
| 80 | + make.top.equalTo(self.tableView.snp.bottom).offset(15) | ||
| 81 | + make.left.equalTo(15) | ||
| 82 | + make.right.equalToSuperview().offset(-15) | ||
| 83 | + make.bottom.equalToSuperview().offset(-75) | ||
| 84 | + } | ||
| 85 | + | ||
| 86 | + self.view.addSubview(self.bottomZhiNanWhiteView) | ||
| 87 | + self.bottomZhiNanWhiteView.snp.makeConstraints { make in | ||
| 88 | + make.height.equalTo(60) | ||
| 89 | + make.bottom.left.right.equalToSuperview() | ||
| 90 | + } | ||
| 91 | + self.bottomZhiNanWhiteView.isHidden = true | ||
| 92 | + | ||
| 93 | + self.bottomZhiNanWhiteView.addSubview(self.addCertificateBtn) | ||
| 94 | + self.addCertificateBtn.snp.makeConstraints { make in | ||
| 95 | + make.left.equalTo(15) | ||
| 96 | + make.right.equalToSuperview().offset(-15) | ||
| 97 | + make.top.equalTo(10) | ||
| 98 | + make.height.equalTo(40) | ||
| 99 | + } | ||
| 100 | + | ||
| 101 | + | ||
| 102 | + } | ||
| 103 | + | ||
| 104 | + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
| 105 | + return 1 | ||
| 106 | + } | ||
| 107 | + | ||
| 108 | + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
| 109 | + if self.isAddCerPhoto == true{ | ||
| 110 | + guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveVitaeCertificateAddPhotoCellIdentifier) as? CNLiveVitaeCertificateAddPhotoCell | ||
| 111 | + else { | ||
| 112 | + let cell = CNLiveVitaeCertificateAddPhotoCell() | ||
| 113 | + return cell | ||
| 114 | + } | ||
| 115 | + cell.selectImageBlock = { image,key,url in | ||
| 116 | + self.isAddCerPhoto = false | ||
| 117 | + self.tableView.reloadData() | ||
| 118 | + self.seleImage = image | ||
| 119 | + self.seleImageUrl = url | ||
| 120 | + self.bottomZhiNanWhiteView.isHidden = false | ||
| 121 | + } | ||
| 122 | + return cell | ||
| 123 | + }else{ | ||
| 124 | + guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveVitaeCertificateAddInfoCellIdentifier) as? CNLiveVitaeCertificateAddInfoCell | ||
| 125 | + else { | ||
| 126 | + let cell = CNLiveVitaeCertificateAddInfoCell() | ||
| 127 | + return cell | ||
| 128 | + } | ||
| 129 | + cell.uploadImage = self.seleImage | ||
| 130 | + cell.tfReturnBlock = { | ||
| 131 | + self.view.endEditing(true) | ||
| 132 | + } | ||
| 133 | + return cell | ||
| 134 | + } | ||
| 135 | + } | ||
| 136 | + | ||
| 137 | + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | ||
| 138 | + | ||
| 139 | + } | ||
| 140 | + | ||
| 141 | + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | ||
| 142 | + if isAddCerPhoto == true{ | ||
| 143 | + return 351 | ||
| 144 | + }else{ | ||
| 145 | + return 620 | ||
| 146 | + } | ||
| 147 | + } | ||
| 148 | + | ||
| 149 | + //确认提交证书 | ||
| 150 | + @objc func addCertificateBtnAction(){ | ||
| 151 | + let cell = self.tableView.cellForRow(at: IndexPath(row: 0, section: 0)) as! CNLiveVitaeCertificateAddInfoCell | ||
| 152 | + //判断非空 | ||
| 153 | + if self.seleImage == nil{ | ||
| 154 | + showMessage(message: "请上传图片") | ||
| 155 | + return | ||
| 156 | + } | ||
| 157 | + if cell.cerNameTF.text?.count == 0{ | ||
| 158 | + showMessage(message: "请填写证书名称") | ||
| 159 | + return | ||
| 160 | + } | ||
| 161 | + if cell.cerNumberTF.text?.count == 0{ | ||
| 162 | + showMessage(message: "请填写资格证编号") | ||
| 163 | + return | ||
| 164 | + } | ||
| 165 | + if cell.cerJiGouTF.text?.count == 0{ | ||
| 166 | + showMessage(message: "请填写发证机构") | ||
| 167 | + return | ||
| 168 | + } | ||
| 169 | + let vsid = UserInfoManager.shared.userInfo.currentUser?.vsid ?? "" | ||
| 170 | + //提交证书 | ||
| 171 | + CNLiveVitaeViewModel.saveCertificate(img: self.seleImageUrl, lv: cell.cerLevelTF.text ?? "", number: cell.cerNumberTF.text ?? "", organization: cell.cerJiGouTF.text ?? "", time: cell.cerTimeTF.text ?? "", title: cell.cerNameTF.text ?? "", uploadTime: "", validity: cell.cerYouXiaoTF.text ?? "", vsid: vsid){result, respStatue in | ||
| 172 | + if respStatue == .success{ | ||
| 173 | + self.navigationController?.viewControllers.forEach({ item in | ||
| 174 | + if (item.isKind(of: CNLiveVitaeVocationalCertificateController.self)) { | ||
| 175 | + self.navigationController?.popToViewController(item, animated: true) | ||
| 176 | + } | ||
| 177 | + }) | ||
| 178 | + } | ||
| 179 | + | ||
| 180 | + } | ||
| 181 | + } | ||
| 182 | +} |
metaCode/Classes/Main/HomePage/Controller/DigitalAuth/CNLiveVitaeCerAddPhotoController.swift
0 → 100644
| 1 | +// | ||
| 2 | +// CNLiveVitaeCerAddPhotoController.swift | ||
| 3 | +// metaCode | ||
| 4 | +// | ||
| 5 | +// Created by zx on 2024/7/27. | ||
| 6 | +// 数字简历-添加证书示例页面 | ||
| 7 | + | ||
| 8 | +import Foundation | ||
| 9 | +import SnapKit | ||
| 10 | + | ||
| 11 | +class CNLiveVitaeCerAddPhotoController:CNLiveBaseViewController{ | ||
| 12 | + | ||
| 13 | + var isYuanJian = true//原件 or 截图 | ||
| 14 | + lazy var cerYuanJianBtn: UIButton = { | ||
| 15 | + let closeBtn = UIButton(type: .custom) | ||
| 16 | + closeBtn.setTitle("证书原件拍照", for: .normal) | ||
| 17 | + closeBtn.setTitleColor(HexColor("#1961FE"), for: .normal) | ||
| 18 | + closeBtn.addTarget(self, action: #selector(cerYuanJianBtnAction), for: .touchUpInside) | ||
| 19 | + return closeBtn | ||
| 20 | + }() | ||
| 21 | + lazy var cerZhengMingBtn: UIButton = { | ||
| 22 | + let closeBtn = UIButton(type: .custom) | ||
| 23 | + closeBtn.setTitle("证书证明截图", for: .normal) | ||
| 24 | + closeBtn.setTitleColor(HexColor("#333333"), for: .normal) | ||
| 25 | + closeBtn.addTarget(self, action: #selector(cerZhengMingBtnAction), for: .touchUpInside) | ||
| 26 | + return closeBtn | ||
| 27 | + }() | ||
| 28 | + lazy var lineView :UIView = { | ||
| 29 | + let bottomNavView = UIView() | ||
| 30 | + bottomNavView.backgroundColor = HexColor("#1961FE") | ||
| 31 | + bottomNavView.layer.cornerRadius = 2 | ||
| 32 | + bottomNavView.clipsToBounds = true | ||
| 33 | + return bottomNavView | ||
| 34 | + }() | ||
| 35 | + lazy var whiteBgView :UIView = { | ||
| 36 | + let bottomNavView = UIView() | ||
| 37 | + bottomNavView.backgroundColor = HexColor("#FFFFFF") | ||
| 38 | + bottomNavView.layer.cornerRadius = 9 | ||
| 39 | + bottomNavView.clipsToBounds = true | ||
| 40 | + return bottomNavView | ||
| 41 | + }() | ||
| 42 | + lazy var uploadTitleLabel: UILabel = { | ||
| 43 | + let titleLabel = UILabel() | ||
| 44 | + titleLabel.textColor = HexColor("#333333") | ||
| 45 | + titleLabel.textAlignment = .left | ||
| 46 | + titleLabel.text = "证书原件拍照上传" | ||
| 47 | + titleLabel.font = BoldFont_15 | ||
| 48 | + return titleLabel | ||
| 49 | + }() | ||
| 50 | + | ||
| 51 | + lazy var uploadRealBgView :UIView = { | ||
| 52 | + let bottomNavView = UIView() | ||
| 53 | + bottomNavView.backgroundColor = HexColor("#F7F8FA") | ||
| 54 | + return bottomNavView | ||
| 55 | + }() | ||
| 56 | + | ||
| 57 | + lazy var uploadRealTitleLabel: UILabel = { | ||
| 58 | + let titleLabel = UILabel() | ||
| 59 | + titleLabel.textColor = HexColor("#999999") | ||
| 60 | + titleLabel.textAlignment = .left | ||
| 61 | + titleLabel.numberOfLines = 3 | ||
| 62 | + titleLabel.text = "·证书图片需包含证书名称、证书编号、发证机构等字段信息\n·拍摄保持全面清晰完整\n·上传图片时请保持文字方向朝上" | ||
| 63 | + titleLabel.font = Font_11 | ||
| 64 | + return titleLabel | ||
| 65 | + }() | ||
| 66 | + lazy var cerYuanJianImgView :UIImageView = { | ||
| 67 | + let iconImgView = UIImageView() | ||
| 68 | + iconImgView.image = UIImage(named: "mine_jianli_cerYuanJian") | ||
| 69 | + return iconImgView | ||
| 70 | + }() | ||
| 71 | + | ||
| 72 | + | ||
| 73 | + | ||
| 74 | + override func viewDidLoad() { | ||
| 75 | + super.viewDidLoad() | ||
| 76 | + titleName = "证书上传正确示例" | ||
| 77 | + navigationBarHidden = false | ||
| 78 | + self.initUI() | ||
| 79 | + } | ||
| 80 | + | ||
| 81 | + deinit {} | ||
| 82 | + func initUI(){ | ||
| 83 | + self.view.backgroundColor = HexColor("#F6F7FB") | ||
| 84 | + | ||
| 85 | + self.view.addSubview(self.cerYuanJianBtn) | ||
| 86 | + self.cerYuanJianBtn.snp.makeConstraints { make in | ||
| 87 | + make.left.equalTo(0) | ||
| 88 | + make.top.equalTo(KNavigationHeight+15) | ||
| 89 | + make.height.equalTo(21) | ||
| 90 | + make.width.equalTo(KSreenWidth/2) | ||
| 91 | + } | ||
| 92 | + self.view.addSubview(self.cerZhengMingBtn) | ||
| 93 | + self.cerZhengMingBtn.snp.makeConstraints { make in | ||
| 94 | + make.top.equalTo(KNavigationHeight+15) | ||
| 95 | + make.height.equalTo(21) | ||
| 96 | + make.width.equalTo(KSreenWidth/2) | ||
| 97 | + make.right.equalToSuperview() | ||
| 98 | + } | ||
| 99 | + self.view.addSubview(self.lineView) | ||
| 100 | + self.lineView.snp.makeConstraints { make in | ||
| 101 | + make.top.equalTo(self.cerYuanJianBtn.snp.bottom).offset(5) | ||
| 102 | + make.height.equalTo(4) | ||
| 103 | + make.width.equalTo(25) | ||
| 104 | + make.centerX.equalTo(self.cerYuanJianBtn.snp.centerX) | ||
| 105 | + } | ||
| 106 | + | ||
| 107 | + self.view.addSubview(self.whiteBgView) | ||
| 108 | + self.whiteBgView.snp.makeConstraints { make in | ||
| 109 | + make.top.equalTo(self.lineView.snp.bottom).offset(15) | ||
| 110 | + make.height.equalTo(322) | ||
| 111 | + make.left.equalTo(15) | ||
| 112 | + make.right.equalToSuperview().offset(-15) | ||
| 113 | + } | ||
| 114 | + | ||
| 115 | + self.whiteBgView.addSubview(self.uploadTitleLabel) | ||
| 116 | + self.uploadTitleLabel.snp.makeConstraints { make in | ||
| 117 | + make.top.equalTo(15) | ||
| 118 | + make.left.equalTo(15) | ||
| 119 | + } | ||
| 120 | + | ||
| 121 | + self.whiteBgView.addSubview(self.uploadRealBgView) | ||
| 122 | + self.uploadRealBgView.snp.makeConstraints { make in | ||
| 123 | + make.top.equalTo(self.uploadTitleLabel.snp.bottom).offset(10) | ||
| 124 | + make.left.equalTo(15) | ||
| 125 | + make.height.equalTo(65) | ||
| 126 | + make.right.equalToSuperview().offset(-15) | ||
| 127 | + } | ||
| 128 | + | ||
| 129 | + self.uploadRealBgView.addSubview(self.uploadRealTitleLabel) | ||
| 130 | + self.uploadRealTitleLabel.snp.makeConstraints { make in | ||
| 131 | + make.left.equalTo(10) | ||
| 132 | + make.right.equalToSuperview().offset(-10) | ||
| 133 | + make.centerY.equalToSuperview() | ||
| 134 | + } | ||
| 135 | + | ||
| 136 | + self.whiteBgView.addSubview(self.cerYuanJianImgView) | ||
| 137 | + self.cerYuanJianImgView.snp.makeConstraints { make in | ||
| 138 | + make.top.equalTo(self.uploadRealBgView.snp.bottom).offset(15) | ||
| 139 | + make.left.equalTo(15) | ||
| 140 | + make.right.equalToSuperview().offset(-15) | ||
| 141 | + make.bottom.equalToSuperview().offset(-15) | ||
| 142 | + } | ||
| 143 | + | ||
| 144 | + } | ||
| 145 | + | ||
| 146 | + @objc func cerYuanJianBtnAction(){ | ||
| 147 | + self.isYuanJian = true | ||
| 148 | + self.updateUI() | ||
| 149 | + } | ||
| 150 | + | ||
| 151 | + @objc func cerZhengMingBtnAction(){ | ||
| 152 | + self.isYuanJian = false | ||
| 153 | + self.updateUI() | ||
| 154 | + } | ||
| 155 | + func updateUI(){ | ||
| 156 | + if self.isYuanJian == true{ | ||
| 157 | + self.cerYuanJianBtn.setTitleColor(HexColor("#1961FE"), for: .normal) | ||
| 158 | + self.cerZhengMingBtn.setTitleColor(HexColor("#333333"), for: .normal) | ||
| 159 | + self.lineView.snp.remakeConstraints { make in | ||
| 160 | + make.top.equalTo(self.cerYuanJianBtn.snp.bottom).offset(5) | ||
| 161 | + make.height.equalTo(4) | ||
| 162 | + make.width.equalTo(25) | ||
| 163 | + make.centerX.equalTo(self.cerYuanJianBtn.snp.centerX) | ||
| 164 | + } | ||
| 165 | + self.uploadTitleLabel.text = "证书原件拍照上传" | ||
| 166 | + self.uploadRealTitleLabel.text = "·证书图片需包含证书名称、证书编号、发证机构等字段信息\n·拍摄保持全面清晰完整\n·上传图片时请保持文字方向朝上" | ||
| 167 | + self.uploadRealTitleLabel.numberOfLines = 3 | ||
| 168 | + self.cerYuanJianImgView.image = UIImage(named: "mine_jianli_cerYuanJian") | ||
| 169 | + }else{ | ||
| 170 | + self.cerYuanJianBtn.setTitleColor(HexColor("#333333"), for: .normal) | ||
| 171 | + self.cerZhengMingBtn.setTitleColor(HexColor("#1961FE"), for: .normal) | ||
| 172 | + self.lineView.snp.remakeConstraints { make in | ||
| 173 | + make.top.equalTo(self.cerYuanJianBtn.snp.bottom).offset(5) | ||
| 174 | + make.height.equalTo(4) | ||
| 175 | + make.width.equalTo(25) | ||
| 176 | + make.centerX.equalTo(self.cerZhengMingBtn.snp.centerX) | ||
| 177 | + } | ||
| 178 | + self.uploadTitleLabel.text = "截图/拍照证书信息上传" | ||
| 179 | + self.uploadRealTitleLabel.text = "·拍照上传支持截图、纸条等\n ·包含字段需要带有证书名、身份证号、姓名等" | ||
| 180 | + self.uploadRealTitleLabel.numberOfLines = 2 | ||
| 181 | + self.cerYuanJianImgView.image = UIImage(named: "mine_jianli_cerJieTu") | ||
| 182 | + } | ||
| 183 | + } | ||
| 184 | +} |
metaCode/Classes/Main/HomePage/Controller/DigitalAuth/CNLiveVitaeVocationalCertificateController.swift
| @@ -47,12 +47,15 @@ class CNLiveVitaeVocationalCertificateController:CNLiveBaseViewController,UITabl | @@ -47,12 +47,15 @@ class CNLiveVitaeVocationalCertificateController:CNLiveBaseViewController,UITabl | ||
| 47 | return dataArray | 47 | return dataArray |
| 48 | }() | 48 | }() |
| 49 | 49 | ||
| 50 | + override func viewWillAppear(_ animated: Bool) { | ||
| 51 | + super.viewWillAppear(animated) | ||
| 52 | + self.getCetList() | ||
| 53 | + } | ||
| 50 | override func viewDidLoad() { | 54 | override func viewDidLoad() { |
| 51 | super.viewDidLoad() | 55 | super.viewDidLoad() |
| 52 | titleName = "职业证书" | 56 | titleName = "职业证书" |
| 53 | navigationBarHidden = false | 57 | navigationBarHidden = false |
| 54 | self.initUI() | 58 | self.initUI() |
| 55 | - self.getCetList() | ||
| 56 | } | 59 | } |
| 57 | 60 | ||
| 58 | deinit {} | 61 | deinit {} |
| @@ -106,7 +109,7 @@ class CNLiveVitaeVocationalCertificateController:CNLiveBaseViewController,UITabl | @@ -106,7 +109,7 @@ class CNLiveVitaeVocationalCertificateController:CNLiveBaseViewController,UITabl | ||
| 106 | 109 | ||
| 107 | 110 | ||
| 108 | @objc func addCertificateBtnAction(){ | 111 | @objc func addCertificateBtnAction(){ |
| 109 | - | 112 | + self.navigationController?.pushViewController(CNLiveVitaeAddCertificateController(), animated: true) |
| 110 | } | 113 | } |
| 111 | 114 | ||
| 112 | func getCetList(){ | 115 | func getCetList(){ |
metaCode/Classes/Main/HomePage/View/DigitalAuthViews/DigitalResume/CNLiveDigitalResumeCell.swift
| @@ -10,6 +10,7 @@ import Kingfisher | @@ -10,6 +10,7 @@ import Kingfisher | ||
| 10 | import SnapKit | 10 | import SnapKit |
| 11 | 11 | ||
| 12 | class CNLiveDigitalResumeCell: UITableViewCell { | 12 | class CNLiveDigitalResumeCell: UITableViewCell { |
| 13 | + var certificatesCount:Int = 0//证书数量 | ||
| 13 | //简历Model | 14 | //简历Model |
| 14 | var _vitaeModel : CNLiveVitaeModel? | 15 | var _vitaeModel : CNLiveVitaeModel? |
| 15 | var vitaeModel : CNLiveVitaeModel? { | 16 | var vitaeModel : CNLiveVitaeModel? { |
| @@ -584,7 +585,7 @@ class CNLiveDigitalResumeCell: UITableViewCell { | @@ -584,7 +585,7 @@ class CNLiveDigitalResumeCell: UITableViewCell { | ||
| 584 | }else{ | 585 | }else{ |
| 585 | self.renzhengDetailTitleLabel.text = "添加职业技能身份 0 >" | 586 | self.renzhengDetailTitleLabel.text = "添加职业技能身份 0 >" |
| 586 | } | 587 | } |
| 587 | - self.zhengshuDetailTitleLabel.text = "上传证书 \(model.certificates.count) >" | 588 | + self.zhengshuDetailTitleLabel.text = "上传证书 \(self.certificatesCount) >" |
| 588 | self.gongzuoDetailTitleLabel.text = "补充工作记录 \(model.works.count) >" | 589 | self.gongzuoDetailTitleLabel.text = "补充工作记录 \(model.works.count) >" |
| 589 | self.huojiangDetailTitleLabel.text = "展示获奖情况 \(model.awards.count) >" | 590 | self.huojiangDetailTitleLabel.text = "展示获奖情况 \(model.awards.count) >" |
| 590 | } | 591 | } |
metaCode/Classes/Main/HomePage/View/DigitalAuthViews/Vitae/CNLiveVitaeCertificateAddInfoCell.swift
0 → 100644
| 1 | +// | ||
| 2 | +// CNLiveVitaeCertificateAddInfoCell.swift | ||
| 3 | +// metaCode | ||
| 4 | +// | ||
| 5 | +// Created by zx on 2024/7/26. | ||
| 6 | +// | ||
| 7 | + | ||
| 8 | +import Foundation | ||
| 9 | + | ||
| 10 | +class CNLiveVitaeCertificateAddInfoCell: UITableViewCell, UITextFieldDelegate{ | ||
| 11 | + | ||
| 12 | + var tfReturnBlock:TFReturnBlock? | ||
| 13 | + | ||
| 14 | + var _uploadImage : UIImage? | ||
| 15 | + var uploadImage : UIImage? { | ||
| 16 | + get{ | ||
| 17 | + _uploadImage | ||
| 18 | + } | ||
| 19 | + set{ | ||
| 20 | + _uploadImage = newValue! | ||
| 21 | + self.uploadPhotoImgView.image = _uploadImage | ||
| 22 | + } | ||
| 23 | + } | ||
| 24 | + lazy var whiteBgView :UIView = { | ||
| 25 | + let whiteBgView = UIView() | ||
| 26 | + whiteBgView.backgroundColor = .white | ||
| 27 | + whiteBgView.layer.cornerRadius = 12 | ||
| 28 | + whiteBgView.clipsToBounds = true | ||
| 29 | + return whiteBgView | ||
| 30 | + }() | ||
| 31 | + lazy var cerDetailTitleLabel: UILabel = { | ||
| 32 | + let titleLabel = UILabel() | ||
| 33 | + titleLabel.textColor = HexColor("#333333") | ||
| 34 | + titleLabel.textAlignment = .left | ||
| 35 | + titleLabel.text = "证书图片" | ||
| 36 | + titleLabel.font = BoldFont_15 | ||
| 37 | + return titleLabel | ||
| 38 | + }() | ||
| 39 | + lazy var uploadPhotoImgView :UIImageView = { | ||
| 40 | + let iconImgView = UIImageView() | ||
| 41 | + iconImgView.backgroundColor = HexColor("#F7F8FA") | ||
| 42 | + iconImgView.contentMode = .scaleAspectFit | ||
| 43 | + iconImgView.layer.cornerRadius = 9 | ||
| 44 | + iconImgView.clipsToBounds = true | ||
| 45 | + return iconImgView | ||
| 46 | + }() | ||
| 47 | + | ||
| 48 | + lazy var line1View :UIView = { | ||
| 49 | + let bottomNavView = UIView() | ||
| 50 | + bottomNavView.backgroundColor = HexColor("#EBEBEB") | ||
| 51 | + return bottomNavView | ||
| 52 | + }() | ||
| 53 | + lazy var cerNameXingImgView :UIImageView = { | ||
| 54 | + let iconImgView = UIImageView() | ||
| 55 | + iconImgView.image = UIImage(named: "mine_jianli_cer_xing") | ||
| 56 | + return iconImgView | ||
| 57 | + }() | ||
| 58 | + lazy var cerNameTitleLabel: UILabel = { | ||
| 59 | + let titleLabel = UILabel() | ||
| 60 | + titleLabel.textColor = HexColor("#333333") | ||
| 61 | + titleLabel.textAlignment = .left | ||
| 62 | + titleLabel.text = "证书名称" | ||
| 63 | + titleLabel.font = BoldFont_15 | ||
| 64 | + return titleLabel | ||
| 65 | + }() | ||
| 66 | + lazy var cerNameTF :UITextField = { | ||
| 67 | + let searchTF = UITextField() | ||
| 68 | + searchTF.textAlignment = .right | ||
| 69 | + searchTF.clearButtonMode = .always | ||
| 70 | + searchTF.textColor = HexColor("#333333") | ||
| 71 | + searchTF.font = Font_15 | ||
| 72 | + searchTF.placeholder = "证书名称" | ||
| 73 | + searchTF.delegate = self | ||
| 74 | + searchTF.returnKeyType = .done | ||
| 75 | + return searchTF | ||
| 76 | + }() | ||
| 77 | + | ||
| 78 | + lazy var lineNumberView :UIView = { | ||
| 79 | + let bottomNavView = UIView() | ||
| 80 | + bottomNavView.backgroundColor = HexColor("#EBEBEB") | ||
| 81 | + return bottomNavView | ||
| 82 | + }() | ||
| 83 | + lazy var cerNumberXingImgView :UIImageView = { | ||
| 84 | + let iconImgView = UIImageView() | ||
| 85 | + iconImgView.image = UIImage(named: "mine_jianli_cer_xing") | ||
| 86 | + return iconImgView | ||
| 87 | + }() | ||
| 88 | + lazy var cerNumberTitleLabel: UILabel = { | ||
| 89 | + let titleLabel = UILabel() | ||
| 90 | + titleLabel.textColor = HexColor("#333333") | ||
| 91 | + titleLabel.textAlignment = .left | ||
| 92 | + titleLabel.text = "资格证编号" | ||
| 93 | + titleLabel.font = BoldFont_15 | ||
| 94 | + return titleLabel | ||
| 95 | + }() | ||
| 96 | + lazy var cerNumberTF :UITextField = { | ||
| 97 | + let searchTF = UITextField() | ||
| 98 | + searchTF.textAlignment = .right | ||
| 99 | + searchTF.clearButtonMode = .always | ||
| 100 | + searchTF.textColor = HexColor("#333333") | ||
| 101 | + searchTF.font = Font_15 | ||
| 102 | + searchTF.placeholder = "填写可提高验证通过率" | ||
| 103 | + searchTF.delegate = self | ||
| 104 | + searchTF.returnKeyType = .done | ||
| 105 | + return searchTF | ||
| 106 | + }() | ||
| 107 | + | ||
| 108 | + lazy var lineLevelView :UIView = { | ||
| 109 | + let bottomNavView = UIView() | ||
| 110 | + bottomNavView.backgroundColor = HexColor("#EBEBEB") | ||
| 111 | + return bottomNavView | ||
| 112 | + }() | ||
| 113 | + lazy var cerLevelTitleLabel: UILabel = { | ||
| 114 | + let titleLabel = UILabel() | ||
| 115 | + titleLabel.textColor = HexColor("#333333") | ||
| 116 | + titleLabel.textAlignment = .left | ||
| 117 | + titleLabel.text = "证书级别" | ||
| 118 | + titleLabel.font = BoldFont_15 | ||
| 119 | + return titleLabel | ||
| 120 | + }() | ||
| 121 | + lazy var cerLevelTF :UITextField = { | ||
| 122 | + let searchTF = UITextField() | ||
| 123 | + searchTF.textAlignment = .right | ||
| 124 | + searchTF.clearButtonMode = .always | ||
| 125 | + searchTF.textColor = HexColor("#333333") | ||
| 126 | + searchTF.font = Font_15 | ||
| 127 | + searchTF.placeholder = "有等级时,填写证书等级" | ||
| 128 | + searchTF.delegate = self | ||
| 129 | + searchTF.returnKeyType = .done | ||
| 130 | + return searchTF | ||
| 131 | + }() | ||
| 132 | + | ||
| 133 | + lazy var lineTimeView :UIView = { | ||
| 134 | + let bottomNavView = UIView() | ||
| 135 | + bottomNavView.backgroundColor = HexColor("#EBEBEB") | ||
| 136 | + return bottomNavView | ||
| 137 | + }() | ||
| 138 | + lazy var cerTimeTitleLabel: UILabel = { | ||
| 139 | + let titleLabel = UILabel() | ||
| 140 | + titleLabel.textColor = HexColor("#333333") | ||
| 141 | + titleLabel.textAlignment = .left | ||
| 142 | + titleLabel.text = "发证时间" | ||
| 143 | + titleLabel.font = BoldFont_15 | ||
| 144 | + return titleLabel | ||
| 145 | + }() | ||
| 146 | + lazy var cerTimeTF :UITextField = { | ||
| 147 | + let searchTF = UITextField() | ||
| 148 | + searchTF.textAlignment = .right | ||
| 149 | + searchTF.clearButtonMode = .always | ||
| 150 | + searchTF.textColor = HexColor("#333333") | ||
| 151 | + searchTF.font = Font_15 | ||
| 152 | + searchTF.placeholder = "有发证时间,填写发证时间" | ||
| 153 | + searchTF.delegate = self | ||
| 154 | + searchTF.returnKeyType = .done | ||
| 155 | + return searchTF | ||
| 156 | + }() | ||
| 157 | + | ||
| 158 | + lazy var lineYouXiaoView :UIView = { | ||
| 159 | + let bottomNavView = UIView() | ||
| 160 | + bottomNavView.backgroundColor = HexColor("#EBEBEB") | ||
| 161 | + return bottomNavView | ||
| 162 | + }() | ||
| 163 | + lazy var cerYouXiaoTitleLabel: UILabel = { | ||
| 164 | + let titleLabel = UILabel() | ||
| 165 | + titleLabel.textColor = HexColor("#333333") | ||
| 166 | + titleLabel.textAlignment = .left | ||
| 167 | + titleLabel.text = "有效期至" | ||
| 168 | + titleLabel.font = BoldFont_15 | ||
| 169 | + return titleLabel | ||
| 170 | + }() | ||
| 171 | + lazy var cerYouXiaoTF :UITextField = { | ||
| 172 | + let searchTF = UITextField() | ||
| 173 | + searchTF.textAlignment = .right | ||
| 174 | + searchTF.clearButtonMode = .always | ||
| 175 | + searchTF.textColor = HexColor("#333333") | ||
| 176 | + searchTF.font = Font_15 | ||
| 177 | + searchTF.placeholder = "有效期至,填写有效期至" | ||
| 178 | + searchTF.delegate = self | ||
| 179 | + searchTF.returnKeyType = .done | ||
| 180 | + return searchTF | ||
| 181 | + }() | ||
| 182 | + | ||
| 183 | + lazy var lineJiGouView :UIView = { | ||
| 184 | + let bottomNavView = UIView() | ||
| 185 | + bottomNavView.backgroundColor = HexColor("#EBEBEB") | ||
| 186 | + return bottomNavView | ||
| 187 | + }() | ||
| 188 | + lazy var cerJiGouXingImgView :UIImageView = { | ||
| 189 | + let iconImgView = UIImageView() | ||
| 190 | + iconImgView.image = UIImage(named: "mine_jianli_cer_xing") | ||
| 191 | + return iconImgView | ||
| 192 | + }() | ||
| 193 | + lazy var cerJiGouTitleLabel: UILabel = { | ||
| 194 | + let titleLabel = UILabel() | ||
| 195 | + titleLabel.textColor = HexColor("#333333") | ||
| 196 | + titleLabel.textAlignment = .left | ||
| 197 | + titleLabel.text = "发证机构" | ||
| 198 | + titleLabel.font = BoldFont_15 | ||
| 199 | + return titleLabel | ||
| 200 | + }() | ||
| 201 | + lazy var cerJiGouTF :UITextField = { | ||
| 202 | + let searchTF = UITextField() | ||
| 203 | + searchTF.textAlignment = .right | ||
| 204 | + searchTF.clearButtonMode = .always | ||
| 205 | + searchTF.textColor = HexColor("#333333") | ||
| 206 | + searchTF.font = Font_15 | ||
| 207 | + searchTF.placeholder = "填写正确,提高验证通过率" | ||
| 208 | + searchTF.delegate = self | ||
| 209 | + searchTF.returnKeyType = .done | ||
| 210 | + return searchTF | ||
| 211 | + }() | ||
| 212 | + | ||
| 213 | + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { | ||
| 214 | + super.init(style: style, reuseIdentifier: reuseIdentifier) | ||
| 215 | + self.selectionStyle = .none | ||
| 216 | + self.backgroundColor = .clear | ||
| 217 | + self.contentView.backgroundColor = .clear | ||
| 218 | + | ||
| 219 | + self.contentView.addSubview(self.whiteBgView) | ||
| 220 | + self.whiteBgView.snp.makeConstraints { make in | ||
| 221 | + make.top.equalTo(15) | ||
| 222 | + make.height.equalTo(700) | ||
| 223 | + make.left.equalTo(15) | ||
| 224 | + make.right.equalToSuperview().offset(-15) | ||
| 225 | + } | ||
| 226 | + self.whiteBgView.addSubview(self.cerDetailTitleLabel) | ||
| 227 | + self.cerDetailTitleLabel.snp.makeConstraints { make in | ||
| 228 | + make.top.equalTo(20) | ||
| 229 | + make.left.equalTo(15) | ||
| 230 | + } | ||
| 231 | + self.whiteBgView.addSubview(self.uploadPhotoImgView) | ||
| 232 | + self.uploadPhotoImgView.snp.makeConstraints { make in | ||
| 233 | + make.top.equalTo(self.cerDetailTitleLabel.snp.bottom).offset(10) | ||
| 234 | + make.left.equalTo(15) | ||
| 235 | + make.right.equalToSuperview().offset(-15) | ||
| 236 | + make.height.equalTo(180) | ||
| 237 | + } | ||
| 238 | + | ||
| 239 | + self.whiteBgView.addSubview(self.line1View) | ||
| 240 | + self.line1View.snp.makeConstraints { make in | ||
| 241 | + make.top.equalTo(self.uploadPhotoImgView.snp.bottom).offset(20) | ||
| 242 | + make.left.equalTo(15) | ||
| 243 | + make.right.equalToSuperview().offset(-15) | ||
| 244 | + make.height.equalTo(0.5) | ||
| 245 | + } | ||
| 246 | + self.whiteBgView.addSubview(self.cerNameXingImgView) | ||
| 247 | + self.cerNameXingImgView.snp.makeConstraints { make in | ||
| 248 | + make.width.height.equalTo(5) | ||
| 249 | + make.left.equalTo(6) | ||
| 250 | + make.top.equalTo(self.line1View.snp.bottom).offset(28) | ||
| 251 | + } | ||
| 252 | + self.whiteBgView.addSubview(self.cerNameTitleLabel) | ||
| 253 | + self.cerNameTitleLabel.snp.makeConstraints { make in | ||
| 254 | + make.top.equalTo(self.line1View.snp.bottom).offset(20) | ||
| 255 | + make.left.equalTo(self.cerNameXingImgView.snp.right).offset(5) | ||
| 256 | + make.width.equalTo(70) | ||
| 257 | + make.height.equalTo(21) | ||
| 258 | + } | ||
| 259 | + self.whiteBgView.addSubview(self.cerNameTF) | ||
| 260 | + self.cerNameTF.snp.makeConstraints { make in | ||
| 261 | + make.centerY.equalTo(self.cerNameTitleLabel.snp.centerY) | ||
| 262 | + make.left.greaterThanOrEqualTo(self.cerNameTitleLabel.snp.right).offset(10) | ||
| 263 | + make.right.equalToSuperview().offset(-15) | ||
| 264 | + make.height.equalTo(21) | ||
| 265 | + } | ||
| 266 | + | ||
| 267 | + self.whiteBgView.addSubview(self.lineNumberView) | ||
| 268 | + self.lineNumberView.snp.makeConstraints { make in | ||
| 269 | + make.top.equalTo(self.cerNameTitleLabel.snp.bottom).offset(20) | ||
| 270 | + make.left.equalTo(15) | ||
| 271 | + make.right.equalToSuperview().offset(-15) | ||
| 272 | + make.height.equalTo(0.5) | ||
| 273 | + } | ||
| 274 | + self.whiteBgView.addSubview(self.cerNumberXingImgView) | ||
| 275 | + self.cerNumberXingImgView.snp.makeConstraints { make in | ||
| 276 | + make.width.height.equalTo(5) | ||
| 277 | + make.left.equalTo(6) | ||
| 278 | + make.top.equalTo(self.lineNumberView.snp.bottom).offset(28) | ||
| 279 | + } | ||
| 280 | + self.whiteBgView.addSubview(self.cerNumberTitleLabel) | ||
| 281 | + self.cerNumberTitleLabel.snp.makeConstraints { make in | ||
| 282 | + make.top.equalTo(self.lineNumberView.snp.bottom).offset(20) | ||
| 283 | + make.left.equalTo(self.cerNumberXingImgView.snp.right).offset(5) | ||
| 284 | + make.width.equalTo(90) | ||
| 285 | + make.height.equalTo(21) | ||
| 286 | + } | ||
| 287 | + self.whiteBgView.addSubview(self.cerNumberTF) | ||
| 288 | + self.cerNumberTF.snp.makeConstraints { make in | ||
| 289 | + make.centerY.equalTo(self.cerNumberTitleLabel.snp.centerY) | ||
| 290 | + make.left.greaterThanOrEqualTo(self.cerNumberTitleLabel.snp.right).offset(10) | ||
| 291 | + make.right.equalToSuperview().offset(-15) | ||
| 292 | + make.height.equalTo(21) | ||
| 293 | + } | ||
| 294 | + | ||
| 295 | + self.whiteBgView.addSubview(self.lineLevelView) | ||
| 296 | + self.lineLevelView.snp.makeConstraints { make in | ||
| 297 | + make.top.equalTo(self.cerNumberTitleLabel.snp.bottom).offset(20) | ||
| 298 | + make.left.equalTo(15) | ||
| 299 | + make.right.equalToSuperview().offset(-15) | ||
| 300 | + make.height.equalTo(0.5) | ||
| 301 | + } | ||
| 302 | + self.whiteBgView.addSubview(self.cerLevelTitleLabel) | ||
| 303 | + self.cerLevelTitleLabel.snp.makeConstraints { make in | ||
| 304 | + make.top.equalTo(self.lineLevelView.snp.bottom).offset(20) | ||
| 305 | + make.left.equalTo(self.cerNameTitleLabel.snp.left) | ||
| 306 | + make.width.equalTo(70) | ||
| 307 | + make.height.equalTo(21) | ||
| 308 | + } | ||
| 309 | + self.whiteBgView.addSubview(self.cerLevelTF) | ||
| 310 | + self.cerLevelTF.snp.makeConstraints { make in | ||
| 311 | + make.centerY.equalTo(self.cerLevelTitleLabel.snp.centerY) | ||
| 312 | + make.left.greaterThanOrEqualTo(self.cerLevelTitleLabel.snp.right).offset(10) | ||
| 313 | + make.right.equalToSuperview().offset(-15) | ||
| 314 | + make.height.equalTo(21) | ||
| 315 | + } | ||
| 316 | + | ||
| 317 | + self.whiteBgView.addSubview(self.lineTimeView) | ||
| 318 | + self.lineTimeView.snp.makeConstraints { make in | ||
| 319 | + make.top.equalTo(self.cerLevelTitleLabel.snp.bottom).offset(20) | ||
| 320 | + make.left.equalTo(15) | ||
| 321 | + make.right.equalToSuperview().offset(-15) | ||
| 322 | + make.height.equalTo(0.5) | ||
| 323 | + } | ||
| 324 | + self.whiteBgView.addSubview(self.cerTimeTitleLabel) | ||
| 325 | + self.cerTimeTitleLabel.snp.makeConstraints { make in | ||
| 326 | + make.top.equalTo(self.lineTimeView.snp.bottom).offset(20) | ||
| 327 | + make.left.equalTo(self.cerNameTitleLabel.snp.left) | ||
| 328 | + make.width.equalTo(70) | ||
| 329 | + make.height.equalTo(21) | ||
| 330 | + } | ||
| 331 | + self.whiteBgView.addSubview(self.cerTimeTF) | ||
| 332 | + self.cerTimeTF.snp.makeConstraints { make in | ||
| 333 | + make.centerY.equalTo(self.cerTimeTitleLabel.snp.centerY) | ||
| 334 | + make.left.greaterThanOrEqualTo(self.cerTimeTitleLabel.snp.right).offset(10) | ||
| 335 | + make.right.equalToSuperview().offset(-15) | ||
| 336 | + make.height.equalTo(21) | ||
| 337 | + } | ||
| 338 | + | ||
| 339 | + self.whiteBgView.addSubview(self.lineYouXiaoView) | ||
| 340 | + self.lineYouXiaoView.snp.makeConstraints { make in | ||
| 341 | + make.top.equalTo(self.cerTimeTitleLabel.snp.bottom).offset(20) | ||
| 342 | + make.left.equalTo(15) | ||
| 343 | + make.right.equalToSuperview().offset(-15) | ||
| 344 | + make.height.equalTo(0.5) | ||
| 345 | + } | ||
| 346 | + self.whiteBgView.addSubview(self.cerYouXiaoTitleLabel) | ||
| 347 | + self.cerYouXiaoTitleLabel.snp.makeConstraints { make in | ||
| 348 | + make.top.equalTo(self.lineYouXiaoView.snp.bottom).offset(20) | ||
| 349 | + make.left.equalTo(self.cerNameTitleLabel.snp.left) | ||
| 350 | + make.width.equalTo(70) | ||
| 351 | + make.height.equalTo(21) | ||
| 352 | + } | ||
| 353 | + self.whiteBgView.addSubview(self.cerYouXiaoTF) | ||
| 354 | + self.cerYouXiaoTF.snp.makeConstraints { make in | ||
| 355 | + make.centerY.equalTo(self.cerYouXiaoTitleLabel.snp.centerY) | ||
| 356 | + make.left.greaterThanOrEqualTo(self.cerYouXiaoTitleLabel.snp.right).offset(10) | ||
| 357 | + make.right.equalToSuperview().offset(-15) | ||
| 358 | + make.height.equalTo(21) | ||
| 359 | + } | ||
| 360 | + | ||
| 361 | + self.whiteBgView.addSubview(self.lineJiGouView) | ||
| 362 | + self.lineJiGouView.snp.makeConstraints { make in | ||
| 363 | + make.top.equalTo(self.cerYouXiaoTitleLabel.snp.bottom).offset(20) | ||
| 364 | + make.left.equalTo(15) | ||
| 365 | + make.right.equalToSuperview().offset(-15) | ||
| 366 | + make.height.equalTo(0.5) | ||
| 367 | + } | ||
| 368 | + self.whiteBgView.addSubview(self.cerJiGouXingImgView) | ||
| 369 | + self.cerJiGouXingImgView.snp.makeConstraints { make in | ||
| 370 | + make.width.height.equalTo(5) | ||
| 371 | + make.left.equalTo(6) | ||
| 372 | + make.top.equalTo(self.lineJiGouView.snp.bottom).offset(28) | ||
| 373 | + } | ||
| 374 | + self.whiteBgView.addSubview(self.cerJiGouTitleLabel) | ||
| 375 | + self.cerJiGouTitleLabel.snp.makeConstraints { make in | ||
| 376 | + make.top.equalTo(self.lineJiGouView.snp.bottom).offset(20) | ||
| 377 | + make.left.equalTo(self.cerJiGouXingImgView.snp.right).offset(5) | ||
| 378 | + make.width.equalTo(70) | ||
| 379 | + make.height.equalTo(21) | ||
| 380 | + } | ||
| 381 | + self.whiteBgView.addSubview(self.cerJiGouTF) | ||
| 382 | + self.cerJiGouTF.snp.makeConstraints { make in | ||
| 383 | + make.centerY.equalTo(self.cerJiGouTitleLabel.snp.centerY) | ||
| 384 | + make.left.greaterThanOrEqualTo(self.cerJiGouTitleLabel.snp.right).offset(10) | ||
| 385 | + make.right.equalToSuperview().offset(-15) | ||
| 386 | + make.height.equalTo(21) | ||
| 387 | + } | ||
| 388 | + } | ||
| 389 | + | ||
| 390 | + required init?(coder: NSCoder) { | ||
| 391 | + fatalError("init(coder:) has not been implemented") | ||
| 392 | + } | ||
| 393 | + | ||
| 394 | + func textFieldShouldReturn(_ textField: UITextField) -> Bool { | ||
| 395 | + self.tfReturnBlock?() | ||
| 396 | + return true | ||
| 397 | + } | ||
| 398 | +} |
metaCode/Classes/Main/HomePage/View/DigitalAuthViews/Vitae/CNLiveVitaeCertificateAddPhotoCell.swift
0 → 100644
| 1 | +// | ||
| 2 | +// CNLiveVitaeCertificateAddPhotoCell.swift | ||
| 3 | +// metaCode | ||
| 4 | +// | ||
| 5 | +// Created by zx on 2024/7/26. | ||
| 6 | +// | ||
| 7 | + | ||
| 8 | +import Foundation | ||
| 9 | +import HXPHPicker | ||
| 10 | + | ||
| 11 | +typealias SelectUploadImageBlock = (_ uploadImage: UIImage,_ key: String,_ url: String) -> Void | ||
| 12 | + | ||
| 13 | +class CNLiveVitaeCertificateAddPhotoCell: UITableViewCell, PhotoPickerControllerDelegate{ | ||
| 14 | + var selectImageBlock:SelectUploadImageBlock? | ||
| 15 | + lazy var whiteBgView :UIView = { | ||
| 16 | + let whiteBgView = UIView() | ||
| 17 | + whiteBgView.backgroundColor = .white | ||
| 18 | + whiteBgView.layer.cornerRadius = 12 | ||
| 19 | + whiteBgView.clipsToBounds = true | ||
| 20 | + return whiteBgView | ||
| 21 | + }() | ||
| 22 | + lazy var uploadTitleLabel: UILabel = { | ||
| 23 | + let titleLabel = UILabel() | ||
| 24 | + titleLabel.textColor = HexColor("#333333") | ||
| 25 | + titleLabel.textAlignment = .left | ||
| 26 | + titleLabel.text = "请上传个人证书图片" | ||
| 27 | + titleLabel.font = BoldFont_15 | ||
| 28 | + return titleLabel | ||
| 29 | + }() | ||
| 30 | + | ||
| 31 | + lazy var uploadRealBgView :UIView = { | ||
| 32 | + let bottomNavView = UIView() | ||
| 33 | + bottomNavView.backgroundColor = HexColor("#F7F8FA") | ||
| 34 | + return bottomNavView | ||
| 35 | + }() | ||
| 36 | + | ||
| 37 | + lazy var uploadRealTitleLabel: UILabel = { | ||
| 38 | + let titleLabel = UILabel() | ||
| 39 | + titleLabel.textColor = HexColor("#999999") | ||
| 40 | + titleLabel.textAlignment = .left | ||
| 41 | + titleLabel.numberOfLines = 2 | ||
| 42 | + titleLabel.text = "·请上传真实信息,否则可能会影响你的信用\n·图片只自己查询和做认证,对外不展示图片" | ||
| 43 | + titleLabel.font = Font_11 | ||
| 44 | + return titleLabel | ||
| 45 | + }() | ||
| 46 | + lazy var uploadPhotoBgImgView :UIImageView = { | ||
| 47 | + let iconImgView = UIImageView() | ||
| 48 | + iconImgView.image = UIImage(named: "mine_jianli_cerPhotoBg") | ||
| 49 | + iconImgView.isUserInteractionEnabled = true | ||
| 50 | + iconImgView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(uploadPhotoBgImgViewAction))) | ||
| 51 | + return iconImgView | ||
| 52 | + }() | ||
| 53 | + lazy var uploadPhotoImgView :UIImageView = { | ||
| 54 | + let iconImgView = UIImageView() | ||
| 55 | + iconImgView.image = UIImage(named: "mine_jianli_cerPhoto") | ||
| 56 | + return iconImgView | ||
| 57 | + }() | ||
| 58 | + lazy var uploadPhotoTitleLabel: UILabel = { | ||
| 59 | + let titleLabel = UILabel() | ||
| 60 | + titleLabel.textColor = HexColor("#333333") | ||
| 61 | + titleLabel.textAlignment = .left | ||
| 62 | + titleLabel.text = "上传图片" | ||
| 63 | + titleLabel.font = BoldFont_16 | ||
| 64 | + return titleLabel | ||
| 65 | + }() | ||
| 66 | + lazy var chakanTitleLabel: UILabel = { | ||
| 67 | + let titleLabel = UILabel() | ||
| 68 | + titleLabel.textColor = HexColor("#666666") | ||
| 69 | + titleLabel.textAlignment = .right | ||
| 70 | + titleLabel.text = "点击查看" | ||
| 71 | + titleLabel.font = Font_14 | ||
| 72 | + return titleLabel | ||
| 73 | + }() | ||
| 74 | + lazy var realTitleLabel: UILabel = { | ||
| 75 | + let titleLabel = UILabel() | ||
| 76 | + titleLabel.textColor = HexColor("#1961FE") | ||
| 77 | + titleLabel.textAlignment = .left | ||
| 78 | + titleLabel.text = "正确示意" | ||
| 79 | + titleLabel.font = Font_14 | ||
| 80 | + titleLabel.isUserInteractionEnabled = true | ||
| 81 | + titleLabel.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(uploadShiYiAction))) | ||
| 82 | + return titleLabel | ||
| 83 | + }() | ||
| 84 | + lazy var realBgView :UIView = { | ||
| 85 | + let bottomNavView = UIView() | ||
| 86 | + bottomNavView.backgroundColor = .clear | ||
| 87 | + bottomNavView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(uploadShiYiAction))) | ||
| 88 | + return bottomNavView | ||
| 89 | + }() | ||
| 90 | + | ||
| 91 | + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { | ||
| 92 | + super.init(style: style, reuseIdentifier: reuseIdentifier) | ||
| 93 | + self.selectionStyle = .none | ||
| 94 | + self.backgroundColor = .clear | ||
| 95 | + self.contentView.backgroundColor = .clear | ||
| 96 | + | ||
| 97 | + self.contentView.addSubview(self.whiteBgView) | ||
| 98 | + self.whiteBgView.snp.makeConstraints { make in | ||
| 99 | + make.top.equalTo(15) | ||
| 100 | + make.height.equalTo(351) | ||
| 101 | + make.left.equalTo(15) | ||
| 102 | + make.right.equalToSuperview().offset(-15) | ||
| 103 | + } | ||
| 104 | + | ||
| 105 | + self.whiteBgView.addSubview(self.uploadTitleLabel) | ||
| 106 | + self.uploadTitleLabel.snp.makeConstraints { make in | ||
| 107 | + make.top.equalTo(20) | ||
| 108 | + make.left.equalTo(15) | ||
| 109 | + } | ||
| 110 | + | ||
| 111 | + self.whiteBgView.addSubview(self.uploadRealBgView) | ||
| 112 | + self.uploadRealBgView.snp.makeConstraints { make in | ||
| 113 | + make.top.equalTo(self.uploadTitleLabel.snp.bottom).offset(10) | ||
| 114 | + make.left.equalTo(15) | ||
| 115 | + make.height.equalTo(50) | ||
| 116 | + make.right.equalToSuperview().offset(-15) | ||
| 117 | + } | ||
| 118 | + | ||
| 119 | + self.uploadRealBgView.addSubview(self.uploadRealTitleLabel) | ||
| 120 | + self.uploadRealTitleLabel.snp.makeConstraints { make in | ||
| 121 | + make.left.equalTo(10) | ||
| 122 | + make.centerY.equalToSuperview() | ||
| 123 | + } | ||
| 124 | + | ||
| 125 | + self.whiteBgView.addSubview(self.uploadPhotoBgImgView) | ||
| 126 | + self.uploadPhotoBgImgView.snp.makeConstraints { make in | ||
| 127 | + make.top.equalTo(self.uploadRealBgView.snp.bottom).offset(15) | ||
| 128 | + make.left.equalTo(15) | ||
| 129 | + make.height.equalTo(180) | ||
| 130 | + make.right.equalToSuperview().offset(-15) | ||
| 131 | + } | ||
| 132 | + self.uploadPhotoBgImgView.addSubview(self.uploadPhotoImgView) | ||
| 133 | + self.uploadPhotoImgView.snp.makeConstraints { make in | ||
| 134 | + make.top.equalTo(50) | ||
| 135 | + make.width.height.equalTo(50) | ||
| 136 | + make.centerX.equalToSuperview() | ||
| 137 | + } | ||
| 138 | + self.uploadPhotoBgImgView.addSubview(self.uploadPhotoTitleLabel) | ||
| 139 | + self.uploadPhotoTitleLabel.snp.makeConstraints { make in | ||
| 140 | + make.top.equalTo(self.uploadPhotoImgView.snp.bottom).offset(10) | ||
| 141 | + make.centerX.equalToSuperview() | ||
| 142 | + } | ||
| 143 | + | ||
| 144 | + self.whiteBgView.addSubview(self.chakanTitleLabel) | ||
| 145 | + self.chakanTitleLabel.snp.makeConstraints { make in | ||
| 146 | + make.right.equalTo(self.uploadPhotoBgImgView.snp.centerX).offset(-5) | ||
| 147 | + make.top.equalTo(self.uploadPhotoBgImgView.snp.bottom).offset(15) | ||
| 148 | + } | ||
| 149 | + | ||
| 150 | + self.whiteBgView.addSubview(self.realTitleLabel) | ||
| 151 | + self.realTitleLabel.snp.makeConstraints { make in | ||
| 152 | + make.left.equalTo(self.uploadPhotoBgImgView.snp.centerX).offset(5) | ||
| 153 | + make.top.equalTo(self.uploadPhotoBgImgView.snp.bottom).offset(15) | ||
| 154 | + } | ||
| 155 | + | ||
| 156 | + self.whiteBgView.addSubview(self.realBgView) | ||
| 157 | + self.realBgView.snp.makeConstraints { make in | ||
| 158 | + make.left.equalTo(self.uploadPhotoBgImgView.snp.centerX) | ||
| 159 | + make.top.equalTo(self.uploadPhotoBgImgView.snp.bottom).offset(5) | ||
| 160 | + make.width.equalTo(100) | ||
| 161 | + make.bottom.equalToSuperview() | ||
| 162 | + } | ||
| 163 | + } | ||
| 164 | + | ||
| 165 | + required init?(coder: NSCoder) { | ||
| 166 | + fatalError("init(coder:) has not been implemented") | ||
| 167 | + } | ||
| 168 | + | ||
| 169 | + @objc func uploadPhotoBgImgViewAction(){ | ||
| 170 | + //上传图片 | ||
| 171 | + let config = PhotoTools.getWXPickerConfig() | ||
| 172 | + config.selectMode = .single | ||
| 173 | + config.selectOptions = .photo | ||
| 174 | + config.maximumSelectedPhotoCount = 3 | ||
| 175 | + let pickerController = PhotoPickerController(picker: config) | ||
| 176 | + pickerController.pickerDelegate = self | ||
| 177 | + pickerController.isOriginal = false | ||
| 178 | + currentViewController()!.present(pickerController, animated: true, completion: nil) | ||
| 179 | + | ||
| 180 | + } | ||
| 181 | + @objc func uploadShiYiAction(){ | ||
| 182 | + //跳转上传示意图页面 | ||
| 183 | + navigationViewController().pushViewController(CNLiveVitaeCerAddPhotoController(), animated: true) | ||
| 184 | + } | ||
| 185 | +} | ||
| 186 | + | ||
| 187 | +extension CNLiveVitaeCertificateAddPhotoCell { | ||
| 188 | + | ||
| 189 | + func pickerController(_ pickerController: PhotoPickerController, | ||
| 190 | + didFinishSelection result: PickerResult) { | ||
| 191 | + result.getImage { [weak self] (image, photoAsset, index) in | ||
| 192 | + if let image = image { | ||
| 193 | + let uploadKey = UploadManager.uploadImage(imageData: image.jpegData(compressionQuality: 1.0)! as NSData, progressBlock: {key, progress in | ||
| 194 | + print("获取进度==>\(progress)") | ||
| 195 | + }, successBlock: { [weak self] key,url in | ||
| 196 | + self?.selectImageBlock?(image,key,url) | ||
| 197 | + }) | ||
| 198 | + | ||
| 199 | + }else { | ||
| 200 | + print("failed") | ||
| 201 | + } | ||
| 202 | + } completionHandler: { (images) in | ||
| 203 | + | ||
| 204 | + } | ||
| 205 | + } | ||
| 206 | +} | ||
| 207 | + |
metaCode/Classes/Main/HomePage/ViewModel/Vitae/CNLiveVitaeViewModel.swift
| @@ -110,7 +110,6 @@ class CNLiveVitaeViewModel:NSObject{ | @@ -110,7 +110,6 @@ class CNLiveVitaeViewModel:NSObject{ | ||
| 110 | 110 | ||
| 111 | } | 111 | } |
| 112 | 112 | ||
| 113 | - | ||
| 114 | /// 获取省市区县列表 | 113 | /// 获取省市区县列表 |
| 115 | /// @param id | 114 | /// @param id |
| 116 | static func getCityListWithId(id:String,resultBlock: @escaping downSlideResultBlock){ | 115 | static func getCityListWithId(id:String,resultBlock: @escaping downSlideResultBlock){ |
| @@ -138,6 +137,65 @@ class CNLiveVitaeViewModel:NSObject{ | @@ -138,6 +137,65 @@ class CNLiveVitaeViewModel:NSObject{ | ||
| 138 | } | 137 | } |
| 139 | 138 | ||
| 140 | /* | 139 | /* |
| 140 | + 保存证书 | ||
| 141 | + 参数 vsid 实名对象id | ||
| 142 | + */ | ||
| 143 | + static func saveCertificate(img:String,lv:String,number:String,organization:String,time:String,title:String,uploadTime:String,validity:String,vsid:String,resultBlock: @escaping downSlideResultBlock) { | ||
| 144 | + let values = NSMutableDictionary() | ||
| 145 | + values.addEntries(from: ["img":img]) | ||
| 146 | + values.addEntries(from: ["lv":lv]) | ||
| 147 | + values.addEntries(from: ["number":number]) | ||
| 148 | + values.addEntries(from: ["organization":organization]) | ||
| 149 | +// values.addEntries(from: ["status":status]) | ||
| 150 | + values.addEntries(from: ["time":time]) | ||
| 151 | + values.addEntries(from: ["title":title]) | ||
| 152 | + values.addEntries(from: ["uploadTime":uploadTime]) | ||
| 153 | + values.addEntries(from: ["validity":validity]) | ||
| 154 | + values.addEntries(from: ["vsid":vsid]) | ||
| 155 | + do { | ||
| 156 | + let request = URLRequest.init(url: URL.init(string: APPBaseMCUrl+"/userApi/saveCertificate")!) as! NSMutableURLRequest | ||
| 157 | + request.httpMethod = "POST" | ||
| 158 | + request.timeoutInterval = 10 | ||
| 159 | + request.setValue("application/json", forHTTPHeaderField: "Content-Type") | ||
| 160 | + let data = try JSONSerialization.data(withJSONObject: values, options: .prettyPrinted) | ||
| 161 | + request.httpBody = data | ||
| 162 | + showLoading(message: "") | ||
| 163 | + let custom_param = NSMutableDictionary() | ||
| 164 | + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appId, forKey: "appId") | ||
| 165 | + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appKey, forKey: "appKey") | ||
| 166 | + CNLiveNetworking.setupCustomParam(custom_param as? [String : String]) | ||
| 167 | + CNLiveNetworking.setAllowRequestDefaultArgument(false) | ||
| 168 | + CNLiveNetworking.setupShowDataResult(false) | ||
| 169 | + CNLiveNetworking.setBuildCustomUrlRequest(request as URLRequest) { task, result, error in | ||
| 170 | + hiddenLoading() | ||
| 171 | + if (error == nil) { | ||
| 172 | + let resp = result as! NSDictionary | ||
| 173 | + let errorCode = "\(resp["errorCode"] ?? "0")" | ||
| 174 | + if (errorCode == "0") { | ||
| 175 | + resultBlock(true,.success) | ||
| 176 | + } else { | ||
| 177 | + showMessage(message: resp["errorMessage"] as! String) | ||
| 178 | + resultBlock(NSNull(),.failed) | ||
| 179 | + } | ||
| 180 | + } else { | ||
| 181 | + if CNLiveNetworking.isNetworking() { | ||
| 182 | + showMessage(message: "上传失败") | ||
| 183 | + resultBlock(NSNull(),.failed) | ||
| 184 | + } else { | ||
| 185 | + showMessage(message: "似乎与网络断开链接") | ||
| 186 | + resultBlock(NSNull(),.noNetwork) | ||
| 187 | + } | ||
| 188 | + } | ||
| 189 | + } | ||
| 190 | + } catch { | ||
| 191 | + showMessage(message: "上传失败") | ||
| 192 | + resultBlock(NSNull(),.failed) | ||
| 193 | + } | ||
| 194 | + | ||
| 195 | + } | ||
| 196 | + | ||
| 197 | + | ||
| 198 | + /* | ||
| 141 | 获取证书列表 | 199 | 获取证书列表 |
| 142 | 参数 vsid 实名对象id | 200 | 参数 vsid 实名对象id |
| 143 | 参数 page NSInteger | 201 | 参数 page NSInteger |
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_cerJieTu.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "filename" : "mine_jianli_cerJieTu@2x.png", | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "filename" : "mine_jianli_cerJieTu@3x.png", | ||
| 14 | + "idiom" : "universal", | ||
| 15 | + "scale" : "3x" | ||
| 16 | + } | ||
| 17 | + ], | ||
| 18 | + "info" : { | ||
| 19 | + "author" : "xcode", | ||
| 20 | + "version" : 1 | ||
| 21 | + } | ||
| 22 | +} |
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_cerJieTu.imageset/mine_jianli_cerJieTu@2x.png
0 → 100644
152 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_cerJieTu.imageset/mine_jianli_cerJieTu@3x.png
0 → 100644
313 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_cerPhoto.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "filename" : "mine_jianli_cerPhoto@2x.png", | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "filename" : "mine_jianli_cerPhoto@3x.png", | ||
| 14 | + "idiom" : "universal", | ||
| 15 | + "scale" : "3x" | ||
| 16 | + } | ||
| 17 | + ], | ||
| 18 | + "info" : { | ||
| 19 | + "author" : "xcode", | ||
| 20 | + "version" : 1 | ||
| 21 | + } | ||
| 22 | +} |
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_cerPhoto.imageset/mine_jianli_cerPhoto@2x.png
0 → 100644
4.98 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_cerPhoto.imageset/mine_jianli_cerPhoto@3x.png
0 → 100644
10.7 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_cerPhotoBg.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "filename" : "mine_jianli_cerPhotoBg@2x.png", | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "filename" : "mine_jianli_cerPhotoBg@3x.png", | ||
| 14 | + "idiom" : "universal", | ||
| 15 | + "scale" : "3x" | ||
| 16 | + } | ||
| 17 | + ], | ||
| 18 | + "info" : { | ||
| 19 | + "author" : "xcode", | ||
| 20 | + "version" : 1 | ||
| 21 | + } | ||
| 22 | +} |
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_cerPhotoBg.imageset/mine_jianli_cerPhotoBg@2x.png
0 → 100644
41.4 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_cerPhotoBg.imageset/mine_jianli_cerPhotoBg@3x.png
0 → 100644
109 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_cerYuanJian.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "filename" : "mine_jianli_cerYuanJian@2x.png", | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "filename" : "mine_jianli_cerYuanJian@3x.png", | ||
| 14 | + "idiom" : "universal", | ||
| 15 | + "scale" : "3x" | ||
| 16 | + } | ||
| 17 | + ], | ||
| 18 | + "info" : { | ||
| 19 | + "author" : "xcode", | ||
| 20 | + "version" : 1 | ||
| 21 | + } | ||
| 22 | +} |
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_cerYuanJian.imageset/mine_jianli_cerYuanJian@2x.png
0 → 100644
295 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_cerYuanJian.imageset/mine_jianli_cerYuanJian@3x.png
0 → 100644
616 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_cer_xing.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "filename" : "mine_jianli_cer_xing@2x.png", | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "filename" : "mine_jianli_cer_xing@3x.png", | ||
| 14 | + "idiom" : "universal", | ||
| 15 | + "scale" : "3x" | ||
| 16 | + } | ||
| 17 | + ], | ||
| 18 | + "info" : { | ||
| 19 | + "author" : "xcode", | ||
| 20 | + "version" : 1 | ||
| 21 | + } | ||
| 22 | +} |
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_cer_xing.imageset/mine_jianli_cer_xing@2x.png
0 → 100644
317 Bytes
metaCode/Supporting Files/Assets.xcassets/MinePage/jianli/mine_jianli_cer_xing.imageset/mine_jianli_cer_xing@3x.png
0 → 100644
546 Bytes