Commit 0541e120a1c096284cb198ea594675a998e11537
1 parent
d751a989
默认选中认证 , 数字简历页面部分逻辑
Showing
46 changed files
with
1767 additions
and
4 deletions
metaCode.xcodeproj/project.pbxproj
| ... | ... | @@ -169,6 +169,10 @@ |
| 169 | 169 | 19CC4D562ADD19C200308E2A /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19CC4D552ADD19C200308E2A /* String+Extension.swift */; }; |
| 170 | 170 | 19D2CE632AE8B65D00691757 /* CNLiveDownSlideTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19D2CE622AE8B65D00691757 /* CNLiveDownSlideTool.swift */; }; |
| 171 | 171 | 19DFE6402C3FC5F400E428AE /* CNLiveDigitalResumeController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19DFE63F2C3FC5F400E428AE /* CNLiveDigitalResumeController.swift */; }; |
| 172 | + 19DFE6432C41039600E428AE /* CNLiveVitaeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19DFE6422C41039600E428AE /* CNLiveVitaeViewModel.swift */; }; | |
| 173 | + 19DFE6462C41099900E428AE /* CNLiveVitaeModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19DFE6452C41099900E428AE /* CNLiveVitaeModel.swift */; }; | |
| 174 | + 19DFE6492C44BEAE00E428AE /* CNLiveDigitalResumeCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19DFE6482C44BEAE00E428AE /* CNLiveDigitalResumeCell.swift */; }; | |
| 175 | + 19DFE64B2C4516B000E428AE /* CNLiveDigitalResumeSecCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19DFE64A2C4516B000E428AE /* CNLiveDigitalResumeSecCell.swift */; }; | |
| 172 | 176 | 19E302672BC8FEBC00F6B8BD /* CNLliveShopDetailCloseCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19E302662BC8FEBC00F6B8BD /* CNLliveShopDetailCloseCell.swift */; }; |
| 173 | 177 | 19E9D1602B3A98C200D0FB30 /* CNLiveShopAssociatedGoodsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19E9D15F2B3A98C200D0FB30 /* CNLiveShopAssociatedGoodsTableViewCell.swift */; }; |
| 174 | 178 | 19E9D1622B3BBB2E00D0FB30 /* CNLiveFileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19E9D1612B3BBB2E00D0FB30 /* CNLiveFileManager.swift */; }; |
| ... | ... | @@ -479,6 +483,10 @@ |
| 479 | 483 | 19CC4D552ADD19C200308E2A /* String+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Extension.swift"; sourceTree = "<group>"; }; |
| 480 | 484 | 19D2CE622AE8B65D00691757 /* CNLiveDownSlideTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveDownSlideTool.swift; sourceTree = "<group>"; }; |
| 481 | 485 | 19DFE63F2C3FC5F400E428AE /* CNLiveDigitalResumeController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveDigitalResumeController.swift; sourceTree = "<group>"; }; |
| 486 | + 19DFE6422C41039600E428AE /* CNLiveVitaeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveVitaeViewModel.swift; sourceTree = "<group>"; }; | |
| 487 | + 19DFE6452C41099900E428AE /* CNLiveVitaeModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveVitaeModel.swift; sourceTree = "<group>"; }; | |
| 488 | + 19DFE6482C44BEAE00E428AE /* CNLiveDigitalResumeCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveDigitalResumeCell.swift; sourceTree = "<group>"; }; | |
| 489 | + 19DFE64A2C4516B000E428AE /* CNLiveDigitalResumeSecCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveDigitalResumeSecCell.swift; sourceTree = "<group>"; }; | |
| 482 | 490 | 19E302662BC8FEBC00F6B8BD /* CNLliveShopDetailCloseCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLliveShopDetailCloseCell.swift; sourceTree = "<group>"; }; |
| 483 | 491 | 19E9D15F2B3A98C200D0FB30 /* CNLiveShopAssociatedGoodsTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopAssociatedGoodsTableViewCell.swift; sourceTree = "<group>"; }; |
| 484 | 492 | 19E9D1612B3BBB2E00D0FB30 /* CNLiveFileManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveFileManager.swift; sourceTree = "<group>"; }; |
| ... | ... | @@ -730,6 +738,7 @@ |
| 730 | 738 | 191733432B284DB9007BCC04 /* ShopCoupon */ = { |
| 731 | 739 | isa = PBXGroup; |
| 732 | 740 | children = ( |
| 741 | + 19BB1FE72AECAD060094D962 /* CNLiveShopConsoleModel.swift */, | |
| 733 | 742 | 191733442B284DCD007BCC04 /* CNLiveShopCouponListModel.swift */, |
| 734 | 743 | 191733552B2FE855007BCC04 /* CNLivePickerReusingModel.swift */, |
| 735 | 744 | ); |
| ... | ... | @@ -1089,13 +1098,13 @@ |
| 1089 | 1098 | 19BB1FE42AEB93850094D962 /* Model */ = { |
| 1090 | 1099 | isa = PBXGroup; |
| 1091 | 1100 | children = ( |
| 1101 | + 19DFE6442C41097400E428AE /* Vitae */, | |
| 1092 | 1102 | 191733432B284DB9007BCC04 /* ShopCoupon */, |
| 1093 | 1103 | 191732F92B0AF329007BCC04 /* GoodsDetail */, |
| 1094 | 1104 | 19565ED22AF9FE67007D6727 /* GoodsManager */, |
| 1095 | 1105 | 1926C2902AE0FD4500C71DC3 /* CNLiveDownSlideModel.swift */, |
| 1096 | 1106 | 19FA201A2AE60423001F7186 /* CNLiveDownSlideModelLayout.swift */, |
| 1097 | 1107 | 19BB1FE52AEB93B80094D962 /* CNLiveShopUserInfoModel.swift */, |
| 1098 | - 19BB1FE72AECAD060094D962 /* CNLiveShopConsoleModel.swift */, | |
| 1099 | 1108 | 19BB1FEF2AF0E5B30094D962 /* CNLiveShopDetailModel.swift */, |
| 1100 | 1109 | 19B153CE2BC540FF0018906C /* CNLivePayOrderInfoModel.swift */, |
| 1101 | 1110 | ); |
| ... | ... | @@ -1136,6 +1145,7 @@ |
| 1136 | 1145 | 19C735C82C1063A000CACF4E /* DigitalAuthViews */ = { |
| 1137 | 1146 | isa = PBXGroup; |
| 1138 | 1147 | children = ( |
| 1148 | + 19DFE6472C44BE9500E428AE /* DigitalResume */, | |
| 1139 | 1149 | 19C735C92C10647B00CACF4E /* CNLiveDigitalAuthCell.swift */, |
| 1140 | 1150 | 19C735CB2C11A1F400CACF4E /* CNLiveDigitalThreeCollectCell.swift */, |
| 1141 | 1151 | 194134952C2412C7004FC047 /* CNLiveRealManageCell.swift */, |
| ... | ... | @@ -1165,6 +1175,31 @@ |
| 1165 | 1175 | path = Util; |
| 1166 | 1176 | sourceTree = "<group>"; |
| 1167 | 1177 | }; |
| 1178 | + 19DFE6412C41034C00E428AE /* Vitae */ = { | |
| 1179 | + isa = PBXGroup; | |
| 1180 | + children = ( | |
| 1181 | + 19DFE6422C41039600E428AE /* CNLiveVitaeViewModel.swift */, | |
| 1182 | + ); | |
| 1183 | + path = Vitae; | |
| 1184 | + sourceTree = "<group>"; | |
| 1185 | + }; | |
| 1186 | + 19DFE6442C41097400E428AE /* Vitae */ = { | |
| 1187 | + isa = PBXGroup; | |
| 1188 | + children = ( | |
| 1189 | + 19DFE6452C41099900E428AE /* CNLiveVitaeModel.swift */, | |
| 1190 | + ); | |
| 1191 | + path = Vitae; | |
| 1192 | + sourceTree = "<group>"; | |
| 1193 | + }; | |
| 1194 | + 19DFE6472C44BE9500E428AE /* DigitalResume */ = { | |
| 1195 | + isa = PBXGroup; | |
| 1196 | + children = ( | |
| 1197 | + 19DFE6482C44BEAE00E428AE /* CNLiveDigitalResumeCell.swift */, | |
| 1198 | + 19DFE64A2C4516B000E428AE /* CNLiveDigitalResumeSecCell.swift */, | |
| 1199 | + ); | |
| 1200 | + path = DigitalResume; | |
| 1201 | + sourceTree = "<group>"; | |
| 1202 | + }; | |
| 1168 | 1203 | 20238A324E444EF8C813D9FA /* Pods */ = { |
| 1169 | 1204 | isa = PBXGroup; |
| 1170 | 1205 | children = ( |
| ... | ... | @@ -1574,6 +1609,7 @@ |
| 1574 | 1609 | 7C83B43C2A52B899004BF4A4 /* ViewModel */ = { |
| 1575 | 1610 | isa = PBXGroup; |
| 1576 | 1611 | children = ( |
| 1612 | + 19DFE6412C41034C00E428AE /* Vitae */, | |
| 1577 | 1613 | 194134822C193AF0004FC047 /* DigitalAuth */, |
| 1578 | 1614 | 191733462B2855D6007BCC04 /* ShopCoupon */, |
| 1579 | 1615 | 191732F62B08AAD4007BCC04 /* ShopClassify */, |
| ... | ... | @@ -1997,6 +2033,8 @@ |
| 1997 | 2033 | 1938BD3D2B4BDD4B00390A34 /* CNLiveAlbumCell.swift in Sources */, |
| 1998 | 2034 | 19E9D1622B3BBB2E00D0FB30 /* CNLiveFileManager.swift in Sources */, |
| 1999 | 2035 | 79E496E82AB9674300127BF8 /* NSMutableAttributedString+CNLiveExtensions.swift in Sources */, |
| 2036 | + 19DFE64B2C4516B000E428AE /* CNLiveDigitalResumeSecCell.swift in Sources */, | |
| 2037 | + 19DFE6462C41099900E428AE /* CNLiveVitaeModel.swift in Sources */, | |
| 2000 | 2038 | 19CC4D472ADD006600308E2A /* CNDownSlideSingleCourseCell.swift in Sources */, |
| 2001 | 2039 | 191733232B14601A007BCC04 /* CNLivePlayerProgressSlider.swift in Sources */, |
| 2002 | 2040 | 1917334A2B2BE746007BCC04 /* CNLiveCreateCouponTableViewCell.swift in Sources */, |
| ... | ... | @@ -2065,6 +2103,7 @@ |
| 2065 | 2103 | 1938BD3F2B4BE7C500390A34 /* CNLiveAlbumMsgModel.swift in Sources */, |
| 2066 | 2104 | 798A44FF2A30A0A800815935 /* CNLiveInputFeedBackViewController.swift in Sources */, |
| 2067 | 2105 | 19B153D22BC623980018906C /* CNLiveShopPayNeedPaymentCell.swift in Sources */, |
| 2106 | + 19DFE6492C44BEAE00E428AE /* CNLiveDigitalResumeCell.swift in Sources */, | |
| 2068 | 2107 | 79282A442A2F1C1E00B5F8CF /* CNLiveLoginAuthView.swift in Sources */, |
| 2069 | 2108 | 19B153CD2BC3EB690018906C /* CNLiveShoph5ViewModel.swift in Sources */, |
| 2070 | 2109 | 79BB96A62AF21E2800AEA4AC /* CNLiveShopOrderDetailViewController.swift in Sources */, |
| ... | ... | @@ -2107,6 +2146,7 @@ |
| 2107 | 2146 | 7C4931312A2F142F000E44B4 /* CNHomePageBackgroupView.swift in Sources */, |
| 2108 | 2147 | 19BB1FF22AF21A950094D962 /* CNLliveShopDetailBannerCell.swift in Sources */, |
| 2109 | 2148 | 1938BD432B4E34B200390A34 /* CNHomepageDuanJuDetailViewController.swift in Sources */, |
| 2149 | + 19DFE6432C41039600E428AE /* CNLiveVitaeViewModel.swift in Sources */, | |
| 2110 | 2150 | 790D018B2A2D8B3300C5978D /* CNLiveLoginViewController.swift in Sources */, |
| 2111 | 2151 | 19C735D02C12F5F600CACF4E /* CNLiveRealNameCell.swift in Sources */, |
| 2112 | 2152 | 7999415C2B4E8E8E0014C721 /* CNLiveRefresh.swift in Sources */, | ... | ... |
metaCode/Classes/Common/Base/CNLiveBaseTabBarViewController.swift
| ... | ... | @@ -67,7 +67,7 @@ class CNLiveBaseTabBarViewController: UITabBarController |
| 67 | 67 | CNLiveBaseNavigationController(rootViewController: authVC), |
| 68 | 68 | CNLiveBaseNavigationController(rootViewController: mineVC) |
| 69 | 69 | ] |
| 70 | - | |
| 70 | + self.selectedIndex = 1 | |
| 71 | 71 | } |
| 72 | 72 | |
| 73 | 73 | // MARK: - Tabar 背景图 | ... | ... |
metaCode/Classes/Main/HomePage/Controller/DigitalAuth/CNLiveDigitalResumeController.swift
| ... | ... | @@ -7,15 +7,235 @@ |
| 7 | 7 | |
| 8 | 8 | import Foundation |
| 9 | 9 | |
| 10 | -class CNLiveDigitalResumeController:CNLiveBaseViewController{ | |
| 10 | +class CNLiveDigitalResumeController:CNLiveBaseViewController,UITableViewDataSource, UITableViewDelegate{ | |
| 11 | + //简历model | |
| 12 | + var vitaeModel:CNLiveVitaeModel? | |
| 13 | + lazy var moreNavBtn: UIButton = { | |
| 14 | + let moreNavBtn = UIButton(type: .custom) | |
| 15 | + moreNavBtn.frame = CGRect(x: 0, y: KStatusBarHeight, width: KNavigationHeight-KStatusBarHeight, height: KNavigationHeight-KStatusBarHeight) | |
| 16 | + moreNavBtn.backgroundColor = .clear | |
| 17 | + moreNavBtn.setImage(UIImage(named: "web_more"), for: .normal) | |
| 18 | + moreNavBtn.addTarget(self, action: #selector(moreNavBtnAction), for: .touchUpInside) | |
| 19 | + return moreNavBtn | |
| 20 | + }() | |
| 21 | + lazy var dataArray :NSMutableArray = { | |
| 22 | + let dataArray = NSMutableArray() | |
| 23 | + return dataArray | |
| 24 | + }() | |
| 25 | + let kCNLiveDigitalResumeCellIdentifier = "kCNLiveDigitalResumeCellIdentifier" | |
| 26 | + let kCNLiveDigitalResumeSecCellIdentifier = "kCNLiveDigitalResumeSecCellIdentifier" | |
| 27 | + | |
| 28 | + lazy var tableView : UITableView = { | |
| 29 | + let tableView = UITableView(frame: .zero, style: .plain) | |
| 30 | + tableView.dataSource = self | |
| 31 | + tableView.delegate = self | |
| 32 | + tableView.separatorStyle = .none | |
| 33 | + tableView.tableFooterView = UIView.init() | |
| 34 | + tableView.register(CNLiveDigitalResumeCell.self, forCellReuseIdentifier: kCNLiveDigitalResumeCellIdentifier) | |
| 35 | + tableView.register(CNLiveDigitalResumeSecCell.self, forCellReuseIdentifier: kCNLiveDigitalResumeSecCellIdentifier) | |
| 36 | + tableView.backgroundColor = .clear | |
| 37 | + return tableView | |
| 38 | + }() | |
| 39 | + lazy var bottomZhiNanWhiteView :UIView = { | |
| 40 | + let bottomNavView = UIView() | |
| 41 | + bottomNavView.backgroundColor = .white | |
| 42 | + return bottomNavView | |
| 43 | + }() | |
| 44 | + lazy var jiuYeZhiNanBtn: UIButton = { | |
| 45 | + let nextBtn = UIButton(type: .custom) | |
| 46 | + nextBtn.setTitle("TT互联网行业培训就业指南", for: .normal) | |
| 47 | + nextBtn.setTitleColor(.white, for: .normal) | |
| 48 | + nextBtn.backgroundColor = HexColor("#1961FE") | |
| 49 | + nextBtn.layer.cornerRadius = 20 | |
| 50 | + nextBtn.clipsToBounds = true | |
| 51 | + nextBtn.addTarget(self, action: #selector(jiuYeZhiNanBtnAction), for: .touchUpInside) | |
| 52 | + return nextBtn | |
| 53 | + }() | |
| 54 | + | |
| 55 | + | |
| 11 | 56 | override func viewDidLoad() { |
| 12 | 57 | super.viewDidLoad() |
| 13 | 58 | titleName = "数字简历" |
| 14 | 59 | navigationBarHidden = false |
| 60 | + self.view.backgroundColor = HexColor("#F5F6FB") | |
| 61 | + | |
| 62 | + self.rightNavBtns = [self.moreNavBtn] | |
| 63 | + | |
| 64 | + self.view.addSubview(self.tableView) | |
| 65 | + self.tableView.snp.makeConstraints { make in | |
| 66 | + make.top.equalTo(KNavigationHeight) | |
| 67 | + make.left.right.equalToSuperview() | |
| 68 | + make.height.equalToSuperview().offset(-KNavigationHeight-60) | |
| 69 | + } | |
| 15 | 70 | |
| 71 | + self.view.addSubview(self.bottomZhiNanWhiteView) | |
| 72 | + self.bottomZhiNanWhiteView.snp.makeConstraints { make in | |
| 73 | + make.top.equalTo(self.tableView.snp.bottom) | |
| 74 | + make.bottom.left.right.equalToSuperview() | |
| 75 | + } | |
| 76 | + | |
| 77 | + self.bottomZhiNanWhiteView.addSubview(self.jiuYeZhiNanBtn) | |
| 78 | + self.jiuYeZhiNanBtn.snp.makeConstraints { make in | |
| 79 | + make.left.equalTo(15) | |
| 80 | + make.right.equalToSuperview().offset(-15) | |
| 81 | + make.top.equalTo(10) | |
| 82 | + make.height.equalTo(40) | |
| 83 | + } | |
| 84 | + | |
| 85 | + self.getVitae() | |
| 16 | 86 | } |
| 17 | 87 | |
| 88 | + | |
| 18 | 89 | deinit { |
| 19 | 90 | |
| 20 | 91 | } |
| 92 | + | |
| 93 | + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | |
| 94 | + return 2 | |
| 95 | + } | |
| 96 | + | |
| 97 | + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | |
| 98 | + if indexPath.row == 0{ | |
| 99 | + guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveDigitalResumeCellIdentifier) as? CNLiveDigitalResumeCell | |
| 100 | + else { | |
| 101 | + let cell = CNLiveDigitalResumeCell() | |
| 102 | + return cell | |
| 103 | + } | |
| 104 | + if self.vitaeModel?.vitae?.id ?? 0 > 0{ | |
| 105 | + cell.vitaeModel = self.vitaeModel! | |
| 106 | + } | |
| 107 | + return cell | |
| 108 | + }else{ | |
| 109 | + guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveDigitalResumeSecCellIdentifier) as? CNLiveDigitalResumeSecCell | |
| 110 | + else { | |
| 111 | + let cell = CNLiveDigitalResumeSecCell() | |
| 112 | + return cell | |
| 113 | + } | |
| 114 | + return cell | |
| 115 | + } | |
| 116 | + } | |
| 117 | + | |
| 118 | + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | |
| 119 | + | |
| 120 | + } | |
| 121 | + | |
| 122 | + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | |
| 123 | + if indexPath.row == 0{ | |
| 124 | + return 450+adapt_length(length: 86) | |
| 125 | + }else{ | |
| 126 | + return adapt_length(length: 273+471+54.5) | |
| 127 | + } | |
| 128 | + } | |
| 129 | + | |
| 130 | + @objc func moreNavBtnAction(){ | |
| 131 | + print("moreNavBtnAction") | |
| 132 | + } | |
| 133 | + @objc func jiuYeZhiNanBtnAction(){ | |
| 134 | + self.show17Alert() | |
| 135 | + } | |
| 136 | + | |
| 137 | + // MARK: - 获取简历数据 | |
| 138 | + func getVitae(){ | |
| 139 | + | |
| 140 | + CNLiveVitaeViewModel.getVitae(vsid: UserInfoManager.shared.userInfo.currentUser?.vsid ?? "", type: 1) { result, status in | |
| 141 | + if status == .success{ | |
| 142 | + if let model = result as? CNLiveVitaeModel{ | |
| 143 | + if model.vitae == nil{ | |
| 144 | + //没有简历-保存简历 | |
| 145 | + self.saveUpdateVitae(isSave: true) | |
| 146 | + }else{ | |
| 147 | + //有简历-刷新页面 | |
| 148 | + self.vitaeModel = model | |
| 149 | + self.tableView.reloadData() | |
| 150 | + } | |
| 151 | + }else{ | |
| 152 | + | |
| 153 | + } | |
| 154 | + } | |
| 155 | + } | |
| 156 | + } | |
| 157 | + func saveUpdateVitae(isSave:Bool){ | |
| 158 | + | |
| 159 | + CNLiveVitaeViewModel.saveVitae(city: "", icon: "", isSave: isSave, id: 0, phone: "", profession: "", professionId: 0, selfIntroduction: "", showAddress: true, showAge: true, showAwards: true, showPhone: true, updateTime: "", vsid: UserInfoManager.shared.userInfo.currentUser?.vsid ?? "", workTime: "") { result, status in | |
| 160 | + if status == .success{ | |
| 161 | + | |
| 162 | + } | |
| 163 | + } | |
| 164 | + | |
| 165 | + | |
| 166 | + /** | |
| 167 | + { | |
| 168 | + "city": "", | |
| 169 | + "icon": "", | |
| 170 | + "id": 0, | |
| 171 | + "phone": "", | |
| 172 | + "profession": "", | |
| 173 | + "professionId": 0, | |
| 174 | + "selfIntroduction": "", | |
| 175 | + "showAddress": true, | |
| 176 | + "showAge": true, | |
| 177 | + "showAwards": true, | |
| 178 | + "showPhone": true, | |
| 179 | + "updateTime": "", | |
| 180 | + "vsid": 9, | |
| 181 | + "workTime": "" | |
| 182 | + } | |
| 183 | + */ | |
| 184 | + | |
| 185 | + | |
| 186 | + } | |
| 187 | + | |
| 188 | + // MARK: - Alert弹窗 | |
| 189 | + let delegate = UIApplication.shared.delegate as! AppDelegate | |
| 190 | + /// 未认证-inputType17时弹窗背景图 | |
| 191 | + lazy var alertBgImgView:UIImageView = { | |
| 192 | + let alertBgImgView:UIImageView = UIImageView() | |
| 193 | + alertBgImgView.tag = 20001 | |
| 194 | + alertBgImgView.isUserInteractionEnabled = true | |
| 195 | + let ges = UITapGestureRecognizer(target: self, action: #selector(alertBgImgViewClickAction)) | |
| 196 | + alertBgImgView.addGestureRecognizer(ges) | |
| 197 | + | |
| 198 | + return alertBgImgView | |
| 199 | + }() | |
| 200 | + lazy var alertBgView:UIView = { | |
| 201 | + let alertBgView:UIView = UIView(frame: CGRect(x: 0, y: 0, width: KSreenWidth, height: KSreenHeight)) | |
| 202 | + alertBgView.backgroundColor = HexColor("#000000") | |
| 203 | + alertBgView.alpha = 0.6 | |
| 204 | + alertBgView.isUserInteractionEnabled = true | |
| 205 | + alertBgView.tag = 20000 | |
| 206 | + | |
| 207 | + let ges = UITapGestureRecognizer(target: self, action: #selector(alertBgViewClickAction)) | |
| 208 | + alertBgView.addGestureRecognizer(ges) | |
| 209 | + | |
| 210 | + return alertBgView | |
| 211 | + }() | |
| 212 | + // MARK: - 点击弹窗,按类型跳转 | |
| 213 | + @objc func alertBgImgViewClickAction() { | |
| 214 | + self.hiden17Alert() | |
| 215 | + } | |
| 216 | + @objc func alertBgViewClickAction() { | |
| 217 | + //点击蒙版隐藏view | |
| 218 | + self.hiden17Alert() | |
| 219 | + } | |
| 220 | + //弹出弹窗 | |
| 221 | + func show17Alert(){ | |
| 222 | + | |
| 223 | + delegate.window?.addSubview(self.alertBgView) | |
| 224 | + delegate.window?.addSubview(self.alertBgImgView) | |
| 225 | + alertBgImgView.snp.makeConstraints { make in | |
| 226 | + make.centerX.equalToSuperview() | |
| 227 | + make.centerY.equalToSuperview() | |
| 228 | + make.width.equalTo(KSreenWidth-80) | |
| 229 | + make.height.equalTo((KSreenWidth-80)*170.5/295) | |
| 230 | + } | |
| 231 | + | |
| 232 | + self.alertBgImgView.image = UIImage(named: "auth_alert_unOpen") | |
| 233 | + } | |
| 234 | + func hiden17Alert(){ | |
| 235 | + delegate.window?.subviews.forEach({ view in | |
| 236 | + if view.tag >= 20000{ | |
| 237 | + view.removeFromSuperview() | |
| 238 | + } | |
| 239 | + }) | |
| 240 | + } | |
| 21 | 241 | } | ... | ... |
metaCode/Classes/Main/HomePage/View/DigitalAuthViews/CNLiveDigitalFirstCell.swift
| ... | ... | @@ -63,7 +63,7 @@ class CNLiveDigitalFirstCell: UITableViewCell { |
| 63 | 63 | closeBtn.backgroundColor = HexColor("#FFF8DB") |
| 64 | 64 | closeBtn.layer.cornerRadius = 3 |
| 65 | 65 | closeBtn.clipsToBounds = true |
| 66 | - closeBtn.setTitle("实名对象切换", for: .normal) | |
| 66 | + closeBtn.setTitle("实名对象切换 ▶", for: .normal) | |
| 67 | 67 | closeBtn.setTitleColor(HexColor("#F2A62E"), for: .normal) |
| 68 | 68 | closeBtn.titleLabel?.font = Font_12 |
| 69 | 69 | closeBtn.addTarget(self, action: #selector(changePersonBtnAction), for: .touchUpInside) | ... | ... |
metaCode/Classes/Main/HomePage/View/DigitalAuthViews/DigitalResume/CNLiveDigitalResumeCell.swift
0 → 100644
| 1 | +// | |
| 2 | +// CNLiveDigitalResumeCell.swift | |
| 3 | +// metaCode | |
| 4 | +// | |
| 5 | +// Created by zx on 2024/7/15. | |
| 6 | +// 数字简历顶部cell | |
| 7 | + | |
| 8 | +import Foundation | |
| 9 | +import Kingfisher | |
| 10 | +import SnapKit | |
| 11 | + | |
| 12 | +class CNLiveDigitalResumeCell: UITableViewCell { | |
| 13 | + //简历Model | |
| 14 | + var _vitaeModel : CNLiveVitaeModel? | |
| 15 | + var vitaeModel : CNLiveVitaeModel? { | |
| 16 | + get{ | |
| 17 | + _vitaeModel | |
| 18 | + } | |
| 19 | + set{ | |
| 20 | + _vitaeModel = newValue! | |
| 21 | + setupNewUI(model: _vitaeModel!) | |
| 22 | + } | |
| 23 | + } | |
| 24 | + | |
| 25 | + lazy var bgImgView :UIImageView = { | |
| 26 | + let iconImgView = UIImageView() | |
| 27 | + iconImgView.width = KSreenWidth | |
| 28 | + iconImgView.height = KSreenWidth*234/375 | |
| 29 | + // fillCode | |
| 30 | + let bgLayer1 = CAGradientLayer() | |
| 31 | + bgLayer1.colors = [UIColor(red: 0.16, green: 0.45, blue: 0.99, alpha: 1).cgColor, UIColor(red: 0.96, green: 0.96, blue: 0.98, alpha: 1).cgColor] | |
| 32 | + bgLayer1.locations = [0, 1] | |
| 33 | + bgLayer1.frame = iconImgView.bounds | |
| 34 | + bgLayer1.startPoint = CGPoint(x: 0.5, y: 0) | |
| 35 | + bgLayer1.endPoint = CGPoint(x: 1, y: 1) | |
| 36 | + iconImgView.layer.addSublayer(bgLayer1) | |
| 37 | + return iconImgView | |
| 38 | + }() | |
| 39 | + lazy var iconImgView :UIImageView = { | |
| 40 | + let iconImgView = UIImageView() | |
| 41 | + iconImgView.image = UIImage(named: "mine_jianli_iconbg") | |
| 42 | + return iconImgView | |
| 43 | + }() | |
| 44 | + lazy var jianliTitleLabel: UILabel = { | |
| 45 | + let titleLabel = UILabel.init() | |
| 46 | + titleLabel.textColor = HexColor("#C2D7FF") | |
| 47 | + titleLabel.textAlignment = .left | |
| 48 | + titleLabel.font = Font_14//数字简历ID:123456789321 | |
| 49 | + titleLabel.text = "数字简历ID:" | |
| 50 | + titleLabel.adjustsFontSizeToFitWidth=true | |
| 51 | + titleLabel.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(jianliAction))) | |
| 52 | + titleLabel.isUserInteractionEnabled = true | |
| 53 | + return titleLabel | |
| 54 | + }() | |
| 55 | + lazy var jianliDetailImgView :UIImageView = { | |
| 56 | + let iconImgView = UIImageView() | |
| 57 | + iconImgView.image = UIImage(named: "mine_jianli_back") | |
| 58 | + iconImgView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(jianliAction))) | |
| 59 | + iconImgView.isUserInteractionEnabled = true | |
| 60 | + return iconImgView | |
| 61 | + }() | |
| 62 | + lazy var whiteBgView :UIView = { | |
| 63 | + let whiteBgView = UIView() | |
| 64 | + whiteBgView.backgroundColor = .white | |
| 65 | + whiteBgView.layer.cornerRadius = 12 | |
| 66 | + whiteBgView.clipsToBounds = true | |
| 67 | + return whiteBgView | |
| 68 | + }() | |
| 69 | + lazy var jianliIconBgView :UIView = { | |
| 70 | + let whiteBgView = UIView() | |
| 71 | + whiteBgView.backgroundColor = .white | |
| 72 | + whiteBgView.layer.cornerRadius = 12 | |
| 73 | + whiteBgView.clipsToBounds = true | |
| 74 | + return whiteBgView | |
| 75 | + }() | |
| 76 | + lazy var jianliIconImgView :UIImageView = { | |
| 77 | + let iconImgView = UIImageView() | |
| 78 | + iconImgView.image = UIImage(named: "mine_jianli_icon") | |
| 79 | + iconImgView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(jianliIconAction))) | |
| 80 | + iconImgView.isUserInteractionEnabled = true | |
| 81 | + return iconImgView | |
| 82 | + }() | |
| 83 | + //已认证 名字 | |
| 84 | + lazy var authNameTitleLabel: UILabel = { | |
| 85 | + let titleLabel = UILabel() | |
| 86 | + titleLabel.textColor = HexColor("#333333") | |
| 87 | + titleLabel.textAlignment = .center | |
| 88 | + titleLabel.text = "" | |
| 89 | + titleLabel.font = BoldFont_24 | |
| 90 | + return titleLabel | |
| 91 | + }() | |
| 92 | + lazy var changePersonBtn: UIButton = { | |
| 93 | + let closeBtn = UIButton(type: .custom) | |
| 94 | + closeBtn.backgroundColor = HexColor("#FFF8DB") | |
| 95 | + closeBtn.layer.cornerRadius = 3 | |
| 96 | + closeBtn.clipsToBounds = true | |
| 97 | + closeBtn.setTitle("实名对象切换 ▶", for: .normal) | |
| 98 | + closeBtn.setTitleColor(HexColor("#F2A62E"), for: .normal) | |
| 99 | + closeBtn.titleLabel?.font = Font_12 | |
| 100 | + closeBtn.addTarget(self, action: #selector(changePersonBtnAction), for: .touchUpInside) | |
| 101 | + return closeBtn | |
| 102 | + }() | |
| 103 | + lazy var phoneTitleLabel: UILabel = { | |
| 104 | + let titleLabel = UILabel() | |
| 105 | + titleLabel.textColor = HexColor("#999999") | |
| 106 | + titleLabel.textAlignment = .left | |
| 107 | + titleLabel.text = "男 | xx岁 | 10000000000" | |
| 108 | + titleLabel.font = Font_14 | |
| 109 | + return titleLabel | |
| 110 | + }() | |
| 111 | + lazy var workTitleLabel: UILabel = { | |
| 112 | + let titleLabel = UILabel() | |
| 113 | + titleLabel.textColor = HexColor("#999999") | |
| 114 | + titleLabel.textAlignment = .left | |
| 115 | + titleLabel.text = "参加工作时间未设置 >" | |
| 116 | + titleLabel.font = Font_14 | |
| 117 | + titleLabel.isUserInteractionEnabled = true | |
| 118 | + titleLabel.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(workTitleLabelAciton))) | |
| 119 | + return titleLabel | |
| 120 | + }() | |
| 121 | + lazy var lineView :UIView = { | |
| 122 | + let bottomNavView = UIView() | |
| 123 | + bottomNavView.backgroundColor = HexColor("#EBEBEB") | |
| 124 | + return bottomNavView | |
| 125 | + }() | |
| 126 | + lazy var hangyeTitleLabel: UILabel = { | |
| 127 | + let titleLabel = UILabel() | |
| 128 | + titleLabel.textColor = HexColor("#333333") | |
| 129 | + titleLabel.textAlignment = .left | |
| 130 | + titleLabel.text = "行业" | |
| 131 | + titleLabel.font = BoldFont_14 | |
| 132 | + return titleLabel | |
| 133 | + }() | |
| 134 | + lazy var hangyeDetailTitleLabel: UILabel = { | |
| 135 | + let titleLabel = UILabel() | |
| 136 | + titleLabel.textColor = HexColor("#999999") | |
| 137 | + titleLabel.textAlignment = .right | |
| 138 | + titleLabel.text = "选择您所在行业 >" | |
| 139 | + titleLabel.font = Font_14 | |
| 140 | + titleLabel.isUserInteractionEnabled = true | |
| 141 | + titleLabel.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(hangyeDetailTitleLabelAciton))) | |
| 142 | + | |
| 143 | + return titleLabel | |
| 144 | + }() | |
| 145 | + lazy var renzhengTitleLabel: UILabel = { | |
| 146 | + let titleLabel = UILabel() | |
| 147 | + titleLabel.textColor = HexColor("#333333") | |
| 148 | + titleLabel.textAlignment = .left | |
| 149 | + titleLabel.text = "官方认证" | |
| 150 | + titleLabel.font = BoldFont_14 | |
| 151 | + return titleLabel | |
| 152 | + }() | |
| 153 | + lazy var renzhengDetailTitleLabel: UILabel = { | |
| 154 | + let titleLabel = UILabel() | |
| 155 | + titleLabel.textColor = HexColor("#999999") | |
| 156 | + titleLabel.textAlignment = .right | |
| 157 | + titleLabel.text = "添加职业技能身份 0 >" | |
| 158 | + titleLabel.font = Font_14 | |
| 159 | + titleLabel.isUserInteractionEnabled = true | |
| 160 | + titleLabel.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(renzhengDetailTitleLabelAciton))) | |
| 161 | + | |
| 162 | + return titleLabel | |
| 163 | + }() | |
| 164 | + lazy var zhengshuTitleLabel: UILabel = { | |
| 165 | + let titleLabel = UILabel() | |
| 166 | + titleLabel.textColor = HexColor("#333333") | |
| 167 | + titleLabel.textAlignment = .left | |
| 168 | + titleLabel.text = "其他证书" | |
| 169 | + titleLabel.font = BoldFont_14 | |
| 170 | + return titleLabel | |
| 171 | + }() | |
| 172 | + lazy var zhengshuDetailTitleLabel: UILabel = { | |
| 173 | + let titleLabel = UILabel() | |
| 174 | + titleLabel.textColor = HexColor("#999999") | |
| 175 | + titleLabel.textAlignment = .right | |
| 176 | + titleLabel.text = "上传证书 0 >" | |
| 177 | + titleLabel.font = Font_14 | |
| 178 | + titleLabel.isUserInteractionEnabled = true | |
| 179 | + titleLabel.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(zhengshuDetailTitleLabelAciton))) | |
| 180 | + | |
| 181 | + return titleLabel | |
| 182 | + }() | |
| 183 | + lazy var gongzuoTitleLabel: UILabel = { | |
| 184 | + let titleLabel = UILabel() | |
| 185 | + titleLabel.textColor = HexColor("#333333") | |
| 186 | + titleLabel.textAlignment = .left | |
| 187 | + titleLabel.text = "工作记录" | |
| 188 | + titleLabel.font = BoldFont_14 | |
| 189 | + return titleLabel | |
| 190 | + }() | |
| 191 | + lazy var gongzuoDetailTitleLabel: UILabel = { | |
| 192 | + let titleLabel = UILabel() | |
| 193 | + titleLabel.textColor = HexColor("#999999") | |
| 194 | + titleLabel.textAlignment = .right | |
| 195 | + titleLabel.text = "补充工作记录 0 >" | |
| 196 | + titleLabel.font = Font_14 | |
| 197 | + titleLabel.isUserInteractionEnabled = true | |
| 198 | + titleLabel.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(gongzuoDetailTitleLabelAciton))) | |
| 199 | + | |
| 200 | + return titleLabel | |
| 201 | + }() | |
| 202 | + lazy var huojiangTitleLabel: UILabel = { | |
| 203 | + let titleLabel = UILabel() | |
| 204 | + titleLabel.textColor = HexColor("#333333") | |
| 205 | + titleLabel.textAlignment = .left | |
| 206 | + titleLabel.text = "获奖情况" | |
| 207 | + titleLabel.font = BoldFont_14 | |
| 208 | + return titleLabel | |
| 209 | + }() | |
| 210 | + lazy var huojiangDetailTitleLabel: UILabel = { | |
| 211 | + let titleLabel = UILabel() | |
| 212 | + titleLabel.textColor = HexColor("#999999") | |
| 213 | + titleLabel.textAlignment = .right | |
| 214 | + titleLabel.text = "展示获奖情况 0 >" | |
| 215 | + titleLabel.font = Font_14 | |
| 216 | + titleLabel.isUserInteractionEnabled = true | |
| 217 | + titleLabel.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(huojiangDetailTitleLabelAciton))) | |
| 218 | + | |
| 219 | + return titleLabel | |
| 220 | + }() | |
| 221 | + lazy var bottomLineView :UIView = { | |
| 222 | + let bottomNavView = UIView() | |
| 223 | + bottomNavView.backgroundColor = HexColor("#EBEBEB") | |
| 224 | + return bottomNavView | |
| 225 | + }() | |
| 226 | + lazy var chakanTitleLabel: UILabel = { | |
| 227 | + let titleLabel = UILabel() | |
| 228 | + titleLabel.textColor = HexColor("#999999") | |
| 229 | + titleLabel.textAlignment = .right | |
| 230 | + titleLabel.text = "查看完整资料 >" | |
| 231 | + titleLabel.font = Font_14 | |
| 232 | + titleLabel.isUserInteractionEnabled = true | |
| 233 | + titleLabel.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(chakanTitleLabelAciton))) | |
| 234 | + | |
| 235 | + return titleLabel | |
| 236 | + }() | |
| 237 | + lazy var shezhiView :UIView = { | |
| 238 | + let bottomNavView = UIView() | |
| 239 | + bottomNavView.width = KSreenWidth-30 | |
| 240 | + bottomNavView.height = 61 | |
| 241 | + // fillCode | |
| 242 | + let bgLayer1 = CAGradientLayer() | |
| 243 | + bgLayer1.colors = [UIColor(red: 0.98, green: 1, blue: 1, alpha: 1).cgColor, UIColor(red: 0.9, green: 0.95, blue: 1, alpha: 1).cgColor] | |
| 244 | + bgLayer1.locations = [0, 1] | |
| 245 | + bgLayer1.frame = bottomNavView.bounds | |
| 246 | + bgLayer1.startPoint = CGPoint(x: 0.5, y: 1) | |
| 247 | + bgLayer1.endPoint = CGPoint(x: 0, y: 0) | |
| 248 | + bottomNavView.layer.addSublayer(bgLayer1) | |
| 249 | + return bottomNavView | |
| 250 | + }() | |
| 251 | + lazy var shezhiBtn: UIButton = { | |
| 252 | + let closeBtn = UIButton(type: .custom) | |
| 253 | + closeBtn.layer.cornerRadius = 8 | |
| 254 | + closeBtn.clipsToBounds = true | |
| 255 | + closeBtn.setTitle("设置", for: .normal) | |
| 256 | + closeBtn.setTitleColor(HexColor("#333333"), for: .normal) | |
| 257 | + closeBtn.titleLabel?.font = BoldFont_16 | |
| 258 | + closeBtn.backgroundColor = HexColor("#E8EBF4") | |
| 259 | + closeBtn.addTarget(self, action: #selector(shezhiBtnAction), for: .touchUpInside) | |
| 260 | + return closeBtn | |
| 261 | + }() | |
| 262 | + lazy var chakanBtn: UIButton = { | |
| 263 | + let closeBtn = UIButton(type: .custom) | |
| 264 | + closeBtn.layer.cornerRadius = 8 | |
| 265 | + closeBtn.clipsToBounds = true | |
| 266 | + closeBtn.setTitle("查看我的数字简历", for: .normal) | |
| 267 | + closeBtn.setTitleColor(HexColor("#FFFFFF"), for: .normal) | |
| 268 | + closeBtn.titleLabel?.font = BoldFont_16 | |
| 269 | + closeBtn.backgroundColor = HexColor("#1961FE") | |
| 270 | + closeBtn.addTarget(self, action: #selector(chakanBtnAction), for: .touchUpInside) | |
| 271 | + return closeBtn | |
| 272 | + }() | |
| 273 | + | |
| 274 | + | |
| 275 | + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { | |
| 276 | + super.init(style: style, reuseIdentifier: reuseIdentifier) | |
| 277 | + self.selectionStyle = .none | |
| 278 | + self.backgroundColor = .clear | |
| 279 | + self.contentView.backgroundColor = .clear | |
| 280 | + self.contentView.addSubview(self.bgImgView) | |
| 281 | + self.bgImgView.snp.makeConstraints { make in | |
| 282 | + make.top.equalTo(0) | |
| 283 | + make.left.right.equalToSuperview() | |
| 284 | + make.height.equalTo(KSreenWidth*234/375) | |
| 285 | + } | |
| 286 | + | |
| 287 | + self.bgImgView.addSubview(self.iconImgView) | |
| 288 | + self.iconImgView.snp.makeConstraints { make in | |
| 289 | + make.top.equalTo(23) | |
| 290 | + make.left.equalTo(15) | |
| 291 | + make.height.equalTo(25) | |
| 292 | + make.width.equalTo(149) | |
| 293 | + } | |
| 294 | + | |
| 295 | + self.bgImgView.addSubview(self.jianliTitleLabel) | |
| 296 | + self.jianliTitleLabel.snp.makeConstraints { make in | |
| 297 | + make.top.equalTo(self.iconImgView.snp.bottom).offset(7) | |
| 298 | + make.left.equalTo(15) | |
| 299 | + } | |
| 300 | + self.bgImgView.addSubview(self.jianliDetailImgView) | |
| 301 | + self.jianliDetailImgView.snp.makeConstraints { make in | |
| 302 | + make.left.equalTo(self.jianliTitleLabel.snp.right).offset(4) | |
| 303 | + make.centerY.equalTo(self.jianliTitleLabel.snp.centerY) | |
| 304 | + make.height.equalTo(12) | |
| 305 | + make.width.equalTo(12) | |
| 306 | + } | |
| 307 | + | |
| 308 | + self.contentView.addSubview(self.whiteBgView) | |
| 309 | + self.whiteBgView.snp.makeConstraints { make in | |
| 310 | + make.top.equalTo(adapt_length(length: 87)) | |
| 311 | + make.bottom.equalToSuperview() | |
| 312 | + make.left.equalTo(15) | |
| 313 | + make.right.equalToSuperview().offset(-15) | |
| 314 | + } | |
| 315 | + | |
| 316 | + self.contentView.addSubview(self.jianliIconBgView) | |
| 317 | + self.jianliIconBgView.snp.makeConstraints { make in | |
| 318 | + make.top.equalTo(adapt_length(length: 57)) | |
| 319 | + make.right.equalToSuperview().offset(adapt_length(length: -42)) | |
| 320 | + make.width.height.equalTo(adapt_length(length: 90)) | |
| 321 | + } | |
| 322 | + self.jianliIconBgView.addSubview(self.jianliIconImgView) | |
| 323 | + self.jianliIconImgView.snp.makeConstraints { make in | |
| 324 | + make.width.height.equalTo(adapt_length(length: 70)) | |
| 325 | + make.center.equalToSuperview() | |
| 326 | + } | |
| 327 | + | |
| 328 | + self.whiteBgView.addSubview(self.authNameTitleLabel) | |
| 329 | + self.authNameTitleLabel.snp.makeConstraints { make in | |
| 330 | + make.left.equalTo(adapt_length(length: 15)) | |
| 331 | + make.top.equalTo(adapt_length(length: 20)) | |
| 332 | + } | |
| 333 | + self.authNameTitleLabel.text = UserInfoManager.shared.userInfo.currentUser?.name | |
| 334 | + self.whiteBgView.addSubview(self.changePersonBtn) | |
| 335 | + self.changePersonBtn.snp.makeConstraints { make in | |
| 336 | + make.left.equalTo(self.authNameTitleLabel.snp.right).offset(adapt_length(length: 5)) | |
| 337 | + make.centerY.equalTo(self.authNameTitleLabel.snp.centerY) | |
| 338 | + make.width.equalTo(adapt_length(length: 91)) | |
| 339 | + make.height.equalTo(adapt_length(length: 21)) | |
| 340 | + } | |
| 341 | + self.whiteBgView.addSubview(self.phoneTitleLabel) | |
| 342 | + self.phoneTitleLabel.snp.makeConstraints { make in | |
| 343 | + make.left.equalTo(adapt_length(length: 15)) | |
| 344 | + make.top.equalTo(self.authNameTitleLabel.snp.bottom).offset(adapt_length(length: 8)) | |
| 345 | + } | |
| 346 | + let (gender, age) = self.extractGenderAndAge(fromIDCardNumber: UserInfoManager.shared.userInfo.currentUser?.idNo ?? "") | |
| 347 | + let ageStr = String(format: "%d", age ?? 0) | |
| 348 | + self.phoneTitleLabel.text = gender+" | "+ageStr+"岁"+" | "+UserInfoManager.shared.userInfo.mobile | |
| 349 | + | |
| 350 | + self.whiteBgView.addSubview(self.workTitleLabel) | |
| 351 | + self.workTitleLabel.snp.makeConstraints { make in | |
| 352 | + make.left.equalTo(adapt_length(length: 15)) | |
| 353 | + make.top.equalTo(self.phoneTitleLabel.snp.bottom).offset(adapt_length(length: 4)) | |
| 354 | + } | |
| 355 | + | |
| 356 | + self.whiteBgView.addSubview(self.lineView) | |
| 357 | + self.lineView.snp.makeConstraints { make in | |
| 358 | + make.left.equalTo(adapt_length(length: 15)) | |
| 359 | + make.right.equalToSuperview().offset(adapt_length(length: -15)) | |
| 360 | + make.top.equalTo(self.workTitleLabel.snp.bottom).offset(adapt_length(length: 15)) | |
| 361 | + make.height.equalTo(0.5) | |
| 362 | + } | |
| 363 | + | |
| 364 | + self.whiteBgView.addSubview(self.hangyeTitleLabel) | |
| 365 | + self.hangyeTitleLabel.snp.makeConstraints { make in | |
| 366 | + make.left.equalTo(adapt_length(length: 15)) | |
| 367 | + make.top.equalTo(self.lineView.snp.bottom).offset(adapt_length(length: 20)) | |
| 368 | + } | |
| 369 | + self.whiteBgView.addSubview(self.hangyeDetailTitleLabel) | |
| 370 | + self.hangyeDetailTitleLabel.snp.makeConstraints { make in | |
| 371 | + make.right.equalToSuperview().offset(adapt_length(length: -20)) | |
| 372 | + make.centerY.equalTo(self.hangyeTitleLabel.snp.centerY) | |
| 373 | + } | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + self.whiteBgView.addSubview(self.renzhengTitleLabel) | |
| 378 | + self.renzhengTitleLabel.snp.makeConstraints { make in | |
| 379 | + make.left.equalTo(adapt_length(length: 15)) | |
| 380 | + make.top.equalTo(self.hangyeTitleLabel.snp.bottom).offset(adapt_length(length: 20)) | |
| 381 | + } | |
| 382 | + self.whiteBgView.addSubview(self.renzhengDetailTitleLabel) | |
| 383 | + self.renzhengDetailTitleLabel.snp.makeConstraints { make in | |
| 384 | + make.right.equalToSuperview().offset(adapt_length(length: -20)) | |
| 385 | + make.centerY.equalTo(self.renzhengTitleLabel.snp.centerY) | |
| 386 | + } | |
| 387 | + | |
| 388 | + self.whiteBgView.addSubview(self.zhengshuTitleLabel) | |
| 389 | + self.zhengshuTitleLabel.snp.makeConstraints { make in | |
| 390 | + make.left.equalTo(adapt_length(length: 15)) | |
| 391 | + make.top.equalTo(self.renzhengTitleLabel.snp.bottom).offset(adapt_length(length: 20)) | |
| 392 | + } | |
| 393 | + self.whiteBgView.addSubview(self.zhengshuDetailTitleLabel) | |
| 394 | + self.zhengshuDetailTitleLabel.snp.makeConstraints { make in | |
| 395 | + make.right.equalToSuperview().offset(adapt_length(length: -20)) | |
| 396 | + make.centerY.equalTo(self.zhengshuTitleLabel.snp.centerY) | |
| 397 | + } | |
| 398 | + | |
| 399 | + self.whiteBgView.addSubview(self.gongzuoTitleLabel) | |
| 400 | + self.gongzuoTitleLabel.snp.makeConstraints { make in | |
| 401 | + make.left.equalTo(adapt_length(length: 15)) | |
| 402 | + make.top.equalTo(self.zhengshuTitleLabel.snp.bottom).offset(adapt_length(length: 20)) | |
| 403 | + } | |
| 404 | + self.whiteBgView.addSubview(self.gongzuoDetailTitleLabel) | |
| 405 | + self.gongzuoDetailTitleLabel.snp.makeConstraints { make in | |
| 406 | + make.right.equalToSuperview().offset(adapt_length(length: -20)) | |
| 407 | + make.centerY.equalTo(self.gongzuoTitleLabel.snp.centerY) | |
| 408 | + } | |
| 409 | + | |
| 410 | + self.whiteBgView.addSubview(self.huojiangTitleLabel) | |
| 411 | + self.huojiangTitleLabel.snp.makeConstraints { make in | |
| 412 | + make.left.equalTo(adapt_length(length: 15)) | |
| 413 | + make.top.equalTo(self.gongzuoTitleLabel.snp.bottom).offset(adapt_length(length: 20)) | |
| 414 | + } | |
| 415 | + self.whiteBgView.addSubview(self.huojiangDetailTitleLabel) | |
| 416 | + self.huojiangDetailTitleLabel.snp.makeConstraints { make in | |
| 417 | + make.right.equalToSuperview().offset(adapt_length(length: -20)) | |
| 418 | + make.centerY.equalTo(self.huojiangTitleLabel.snp.centerY) | |
| 419 | + } | |
| 420 | + | |
| 421 | + self.whiteBgView.addSubview(self.bottomLineView) | |
| 422 | + self.bottomLineView.snp.makeConstraints { make in | |
| 423 | + make.left.equalTo(adapt_length(length: 15)) | |
| 424 | + make.right.equalToSuperview().offset(adapt_length(length: -15)) | |
| 425 | + make.top.equalTo(self.huojiangTitleLabel.snp.bottom).offset(adapt_length(length: 20)) | |
| 426 | + make.height.equalTo(0.5) | |
| 427 | + } | |
| 428 | + | |
| 429 | + self.whiteBgView.addSubview(self.chakanTitleLabel) | |
| 430 | + self.chakanTitleLabel.snp.makeConstraints { make in | |
| 431 | + make.top.equalTo(self.bottomLineView.snp.bottom).offset(15) | |
| 432 | + make.centerX.equalToSuperview() | |
| 433 | + make.width.equalTo(100) | |
| 434 | + } | |
| 435 | + self.whiteBgView.addSubview(self.shezhiView) | |
| 436 | + self.shezhiView.snp.makeConstraints { make in | |
| 437 | + make.left.right.equalToSuperview() | |
| 438 | + make.top.equalTo(self.chakanTitleLabel.snp.bottom).offset(15) | |
| 439 | + make.height.equalTo(60) | |
| 440 | + } | |
| 441 | + self.shezhiView.addSubview(self.shezhiBtn) | |
| 442 | + self.shezhiBtn.snp.makeConstraints { make in | |
| 443 | + make.left.equalTo(adapt_length(length: 15)) | |
| 444 | + make.width.equalTo(adapt_length(length: 105)) | |
| 445 | + make.top.equalTo(10) | |
| 446 | + make.height.equalTo(40) | |
| 447 | + } | |
| 448 | + self.shezhiView.addSubview(self.chakanBtn) | |
| 449 | + self.chakanBtn.snp.makeConstraints { make in | |
| 450 | + make.right.equalToSuperview().offset(adapt_length(length: -15)) | |
| 451 | + make.width.equalTo(adapt_length(length: 195)) | |
| 452 | + make.top.equalTo(10) | |
| 453 | + make.height.equalTo(40) | |
| 454 | + } | |
| 455 | + | |
| 456 | + } | |
| 457 | + | |
| 458 | + required init?(coder: NSCoder) { | |
| 459 | + fatalError("init(coder:) has not been implemented") | |
| 460 | + } | |
| 461 | + | |
| 462 | + //身份证号提取 性别和年龄 | |
| 463 | + func extractGenderAndAge(fromIDCardNumber idCardNumber: String) -> (gender: String, age: Int?) { | |
| 464 | + guard idCardNumber.count == 18 else { | |
| 465 | + return ("未知", nil) | |
| 466 | + } | |
| 467 | + | |
| 468 | + // 提取出生年份(身份证号码的第7位到第14位) | |
| 469 | + let birthYearStr = idCardNumber.subString(start: 6, length: 4) | |
| 470 | + guard let birthYear = Int(birthYearStr) else { | |
| 471 | + return ("未知", nil) | |
| 472 | + } | |
| 473 | + | |
| 474 | + // 计算年龄 | |
| 475 | + let currentYear = Calendar.current.component(.year, from: Date()) | |
| 476 | + let age = currentYear - birthYear | |
| 477 | + | |
| 478 | + // 提取性别(身份证号码的第17位,奇数代表男,偶数代表女) | |
| 479 | + let genderCode = Int(String(idCardNumber[idCardNumber.index(idCardNumber.startIndex, offsetBy: 16)])) | |
| 480 | + let gender = genderCode != nil && genderCode! % 2 == 0 ? "女" : "男" | |
| 481 | + | |
| 482 | + return (gender, age >= 0 ? age : nil) | |
| 483 | + } | |
| 484 | + | |
| 485 | + // MARK: - buttonAction | |
| 486 | + @objc func jianliAction(){ | |
| 487 | + | |
| 488 | + } | |
| 489 | + @objc func jianliIconAction(){ | |
| 490 | + | |
| 491 | + } | |
| 492 | + @objc func changePersonBtnAction(){ | |
| 493 | + | |
| 494 | + } | |
| 495 | + @objc func workTitleLabelAciton(){ | |
| 496 | + | |
| 497 | + } | |
| 498 | + @objc func hangyeDetailTitleLabelAciton(){ | |
| 499 | + | |
| 500 | + } | |
| 501 | + @objc func renzhengDetailTitleLabelAciton(){ | |
| 502 | + | |
| 503 | + } | |
| 504 | + @objc func zhengshuDetailTitleLabelAciton(){ | |
| 505 | + | |
| 506 | + } | |
| 507 | + @objc func gongzuoDetailTitleLabelAciton(){ | |
| 508 | + | |
| 509 | + } | |
| 510 | + @objc func huojiangDetailTitleLabelAciton(){ | |
| 511 | + | |
| 512 | + } | |
| 513 | + @objc func chakanTitleLabelAciton(){ | |
| 514 | + | |
| 515 | + } | |
| 516 | + @objc func shezhiBtnAction(){ | |
| 517 | + | |
| 518 | + } | |
| 519 | + @objc func chakanBtnAction(){ | |
| 520 | + | |
| 521 | + } | |
| 522 | + | |
| 523 | + | |
| 524 | + func setupNewUI(model:CNLiveVitaeModel){ | |
| 525 | + self.jianliTitleLabel.text = "数字简历ID:"+"\(model.vitae!.id)" | |
| 526 | + } | |
| 527 | +} | ... | ... |
metaCode/Classes/Main/HomePage/View/DigitalAuthViews/DigitalResume/CNLiveDigitalResumeSecCell.swift
0 → 100644
| 1 | +// | |
| 2 | +// CNLiveDigitalResumeSecCell.swift | |
| 3 | +// metaCode | |
| 4 | +// | |
| 5 | +// Created by zx on 2024/7/15. | |
| 6 | +// 数字简历-sec-cell | |
| 7 | + | |
| 8 | +import Foundation | |
| 9 | + | |
| 10 | +class CNLiveDigitalResumeSecCell:UITableViewCell{ | |
| 11 | + | |
| 12 | + var _usersModel : MineGetUserMsgVerifyUsersModel? | |
| 13 | + var usersModel : MineGetUserMsgVerifyUsersModel? { | |
| 14 | + get{ | |
| 15 | + _usersModel | |
| 16 | + } | |
| 17 | + set{ | |
| 18 | + _usersModel = newValue! | |
| 19 | + setupNewUI(model: _usersModel!) | |
| 20 | + } | |
| 21 | + } | |
| 22 | + | |
| 23 | + lazy var leftWhiteBgView :UIImageView = { | |
| 24 | + let bottomNavView = UIImageView() | |
| 25 | + bottomNavView.backgroundColor = HexColor("#FFFFFF") | |
| 26 | + bottomNavView.layer.cornerRadius = 12 | |
| 27 | + bottomNavView.clipsToBounds = true | |
| 28 | + bottomNavView.image = UIImage(named: "mine_jianli_qiuzhi") | |
| 29 | + bottomNavView.contentMode = .scaleAspectFit | |
| 30 | + bottomNavView.isUserInteractionEnabled = true | |
| 31 | + bottomNavView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(leftQiuZhiAction))) | |
| 32 | + return bottomNavView | |
| 33 | + }() | |
| 34 | + lazy var rightWhiteBgView :UIImageView = { | |
| 35 | + let bottomNavView = UIImageView() | |
| 36 | + bottomNavView.backgroundColor = HexColor("#FFFFFF") | |
| 37 | + bottomNavView.layer.cornerRadius = 12 | |
| 38 | + bottomNavView.clipsToBounds = true | |
| 39 | + bottomNavView.image = UIImage(named: "mine_jianli_zhiye") | |
| 40 | + bottomNavView.contentMode = .scaleAspectFit | |
| 41 | + bottomNavView.isUserInteractionEnabled = true | |
| 42 | + bottomNavView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(rightZhiYeAction))) | |
| 43 | + return bottomNavView | |
| 44 | + }() | |
| 45 | + lazy var bottomWhiteBgView :UIView = { | |
| 46 | + let bottomNavView = UIView() | |
| 47 | + bottomNavView.backgroundColor = HexColor("#FFFFFF") | |
| 48 | + bottomNavView.layer.cornerRadius = 12 | |
| 49 | + bottomNavView.clipsToBounds = true | |
| 50 | + return bottomNavView | |
| 51 | + }() | |
| 52 | + lazy var bottomTitleLabel: UILabel = { | |
| 53 | + let titleLabel = UILabel() | |
| 54 | + titleLabel.textColor = HexColor("#333333") | |
| 55 | + titleLabel.text = "大家都在看" | |
| 56 | + titleLabel.textAlignment = .left | |
| 57 | + titleLabel.font = BoldFont_18 | |
| 58 | + return titleLabel | |
| 59 | + }() | |
| 60 | + lazy var bottomZhiYuanZheView :UIImageView = { | |
| 61 | + let bottomNavView = UIImageView() | |
| 62 | + bottomNavView.image = UIImage(named: "mine_jianli_zhiyuanzhe") | |
| 63 | + bottomNavView.contentMode = .scaleAspectFit | |
| 64 | + bottomNavView.isUserInteractionEnabled = true | |
| 65 | + bottomNavView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(zhiyuanzheAction))) | |
| 66 | + return bottomNavView | |
| 67 | + }() | |
| 68 | + lazy var bottomYangLaoHuLiYuanView :UIImageView = { | |
| 69 | + let bottomNavView = UIImageView() | |
| 70 | + bottomNavView.image = UIImage(named: "mine_jianli_huliyuan") | |
| 71 | + bottomNavView.contentMode = .scaleAspectFit | |
| 72 | + bottomNavView.isUserInteractionEnabled = true | |
| 73 | + bottomNavView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(yangLaoHuLiYuanAction))) | |
| 74 | + return bottomNavView | |
| 75 | + }() | |
| 76 | + lazy var bottomErTongPeiBanShiView :UIImageView = { | |
| 77 | + let bottomNavView = UIImageView() | |
| 78 | + bottomNavView.image = UIImage(named: "mine_jianli_peibanshi") | |
| 79 | + bottomNavView.contentMode = .scaleAspectFit | |
| 80 | + bottomNavView.isUserInteractionEnabled = true | |
| 81 | + bottomNavView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(erTongPeiBanShiAction))) | |
| 82 | + return bottomNavView | |
| 83 | + }() | |
| 84 | + lazy var bottomXinLiZhiYunShiView :UIImageView = { | |
| 85 | + let bottomNavView = UIImageView() | |
| 86 | + bottomNavView.image = UIImage(named: "mine_jianli_xinli") | |
| 87 | + bottomNavView.contentMode = .scaleAspectFit | |
| 88 | + bottomNavView.isUserInteractionEnabled = true | |
| 89 | + bottomNavView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(xinLiZhiYunShiAction))) | |
| 90 | + return bottomNavView | |
| 91 | + }() | |
| 92 | + lazy var bottomJiaTingJiaoYuView :UIImageView = { | |
| 93 | + let bottomNavView = UIImageView() | |
| 94 | + bottomNavView.image = UIImage(named: "mine_jianli_jiating") | |
| 95 | + bottomNavView.contentMode = .scaleAspectFit | |
| 96 | + bottomNavView.isUserInteractionEnabled = true | |
| 97 | + bottomNavView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(JiaTingJiaoYuAction))) | |
| 98 | + return bottomNavView | |
| 99 | + }() | |
| 100 | + lazy var bottomGaoKaoYiShuView :UIImageView = { | |
| 101 | + let bottomNavView = UIImageView() | |
| 102 | + bottomNavView.image = UIImage(named: "mine_jianli_gaokao") | |
| 103 | + bottomNavView.contentMode = .scaleAspectFit | |
| 104 | + bottomNavView.isUserInteractionEnabled = true | |
| 105 | + bottomNavView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(GaoKaoYiShuAction))) | |
| 106 | + return bottomNavView | |
| 107 | + }() | |
| 108 | + lazy var bottomZhiYeGuiHuaView :UIImageView = { | |
| 109 | + let bottomNavView = UIImageView() | |
| 110 | + bottomNavView.image = UIImage(named: "mine_jianli_zhiyeguigua") | |
| 111 | + bottomNavView.contentMode = .scaleAspectFit | |
| 112 | + bottomNavView.isUserInteractionEnabled = true | |
| 113 | + bottomNavView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(ZhiYeGuiHuaAction))) | |
| 114 | + return bottomNavView | |
| 115 | + }() | |
| 116 | + | |
| 117 | + lazy var bottomIconView :UIImageView = { | |
| 118 | + let bottomNavView = UIImageView() | |
| 119 | + bottomNavView.image = UIImage(named: "mine_jianli_grayIcon") | |
| 120 | + bottomNavView.contentMode = .scaleAspectFit | |
| 121 | + return bottomNavView | |
| 122 | + }() | |
| 123 | + | |
| 124 | + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { | |
| 125 | + super.init(style: style, reuseIdentifier: reuseIdentifier) | |
| 126 | + self.selectionStyle = .none | |
| 127 | + self.backgroundColor = .clear | |
| 128 | + self.contentView.backgroundColor = .clear | |
| 129 | + self.initUI() | |
| 130 | + } | |
| 131 | + | |
| 132 | + required init?(coder: NSCoder) { | |
| 133 | + fatalError("init(coder:) has not been implemented") | |
| 134 | + } | |
| 135 | + | |
| 136 | + func initUI(){ | |
| 137 | + self.contentView.addSubview(self.leftWhiteBgView) | |
| 138 | + self.leftWhiteBgView.snp.makeConstraints { make in | |
| 139 | + make.left.top.equalTo(adapt_length(length: 15)) | |
| 140 | + make.width.equalTo(adapt_length(length: 165)) | |
| 141 | + make.height.equalTo(adapt_length(length: 242)) | |
| 142 | + } | |
| 143 | + self.contentView.addSubview(self.rightWhiteBgView) | |
| 144 | + self.rightWhiteBgView.snp.makeConstraints { make in | |
| 145 | + make.top.equalTo(adapt_length(length: 15)) | |
| 146 | + make.right.equalToSuperview().offset(-adapt_length(length: 15)) | |
| 147 | + make.width.equalTo(adapt_length(length: 165)) | |
| 148 | + make.height.equalTo(adapt_length(length: 242)) | |
| 149 | + } | |
| 150 | + | |
| 151 | + self.contentView.addSubview(self.bottomWhiteBgView) | |
| 152 | + self.bottomWhiteBgView.snp.makeConstraints { make in | |
| 153 | + make.top.equalTo(self.leftWhiteBgView.snp.bottom).offset(adapt_length(length: 15)) | |
| 154 | + make.right.equalToSuperview().offset(-adapt_length(length: 15)) | |
| 155 | + make.left.equalTo(adapt_length(length: 15)) | |
| 156 | + make.height.equalTo(adapt_length(length: 471)) | |
| 157 | + } | |
| 158 | + self.bottomWhiteBgView.addSubview(self.bottomTitleLabel) | |
| 159 | + self.bottomTitleLabel.snp.makeConstraints { make in | |
| 160 | + make.left.equalTo(adapt_length(length: 15)) | |
| 161 | + make.top.equalTo(adapt_length(length: 15)) | |
| 162 | + } | |
| 163 | + | |
| 164 | + self.bottomWhiteBgView.addSubview(self.bottomZhiYuanZheView) | |
| 165 | + self.bottomZhiYuanZheView.snp.makeConstraints { make in | |
| 166 | + make.left.equalTo(adapt_length(length: 15)) | |
| 167 | + make.top.equalTo(self.bottomTitleLabel.snp.bottom).offset(adapt_length(length: 15)) | |
| 168 | + make.width.equalTo(adapt_length(length: 152)) | |
| 169 | + make.height.equalTo(adapt_length(length: 92)) | |
| 170 | + } | |
| 171 | + self.bottomWhiteBgView.addSubview(self.bottomYangLaoHuLiYuanView) | |
| 172 | + self.bottomYangLaoHuLiYuanView.snp.makeConstraints { make in | |
| 173 | + make.right.equalToSuperview().offset(adapt_length(length: -15)) | |
| 174 | + make.top.equalTo(self.bottomTitleLabel.snp.bottom).offset(adapt_length(length: 15)) | |
| 175 | + make.width.equalTo(self.bottomZhiYuanZheView.snp.width) | |
| 176 | + make.height.equalTo(self.bottomZhiYuanZheView.snp.height) | |
| 177 | + } | |
| 178 | + | |
| 179 | + self.bottomWhiteBgView.addSubview(self.bottomErTongPeiBanShiView) | |
| 180 | + self.bottomErTongPeiBanShiView.snp.makeConstraints { make in | |
| 181 | + make.left.equalTo(adapt_length(length: 15)) | |
| 182 | + make.top.equalTo(self.bottomZhiYuanZheView.snp.bottom).offset(adapt_length(length: 11)) | |
| 183 | + make.width.equalTo(adapt_length(length: 152)) | |
| 184 | + make.height.equalTo(adapt_length(length: 92)) | |
| 185 | + } | |
| 186 | + self.bottomWhiteBgView.addSubview(self.bottomXinLiZhiYunShiView) | |
| 187 | + self.bottomXinLiZhiYunShiView.snp.makeConstraints { make in | |
| 188 | + make.right.equalToSuperview().offset(adapt_length(length: -15)) | |
| 189 | + make.top.equalTo(self.bottomYangLaoHuLiYuanView.snp.bottom).offset(adapt_length(length: 11)) | |
| 190 | + make.width.equalTo(self.bottomZhiYuanZheView.snp.width) | |
| 191 | + make.height.equalTo(self.bottomZhiYuanZheView.snp.height) | |
| 192 | + } | |
| 193 | + | |
| 194 | + self.bottomWhiteBgView.addSubview(self.bottomJiaTingJiaoYuView) | |
| 195 | + self.bottomJiaTingJiaoYuView.snp.makeConstraints { make in | |
| 196 | + make.left.equalTo(adapt_length(length: 15)) | |
| 197 | + make.top.equalTo(self.bottomErTongPeiBanShiView.snp.bottom).offset(adapt_length(length: 11)) | |
| 198 | + make.width.equalTo(adapt_length(length: 152)) | |
| 199 | + make.height.equalTo(adapt_length(length: 92)) | |
| 200 | + } | |
| 201 | + self.bottomWhiteBgView.addSubview(self.bottomGaoKaoYiShuView) | |
| 202 | + self.bottomGaoKaoYiShuView.snp.makeConstraints { make in | |
| 203 | + make.right.equalToSuperview().offset(adapt_length(length: -15)) | |
| 204 | + make.top.equalTo(self.bottomXinLiZhiYunShiView.snp.bottom).offset(adapt_length(length: 11)) | |
| 205 | + make.width.equalTo(self.bottomZhiYuanZheView.snp.width) | |
| 206 | + make.height.equalTo(self.bottomZhiYuanZheView.snp.height) | |
| 207 | + } | |
| 208 | + | |
| 209 | + self.bottomWhiteBgView.addSubview(self.bottomZhiYeGuiHuaView) | |
| 210 | + self.bottomZhiYeGuiHuaView.snp.makeConstraints { make in | |
| 211 | + make.left.equalTo(adapt_length(length: 15)) | |
| 212 | + make.top.equalTo(self.bottomJiaTingJiaoYuView.snp.bottom).offset(adapt_length(length: 11)) | |
| 213 | + make.width.equalTo(adapt_length(length: 152)) | |
| 214 | + make.height.equalTo(adapt_length(length: 92)) | |
| 215 | + } | |
| 216 | + | |
| 217 | + self.contentView.addSubview(self.bottomIconView) | |
| 218 | + self.bottomIconView.snp.makeConstraints { make in | |
| 219 | + make.top.equalTo(self.bottomWhiteBgView.snp.bottom).offset(adapt_length(length: 15)) | |
| 220 | + make.centerX.equalToSuperview() | |
| 221 | + make.width.equalTo(adapt_length(length: 149)) | |
| 222 | + make.height.equalTo(adapt_length(length: 25)) | |
| 223 | + } | |
| 224 | + | |
| 225 | + } | |
| 226 | + | |
| 227 | + func setupNewUI(model:MineGetUserMsgVerifyUsersModel){ | |
| 228 | + | |
| 229 | + } | |
| 230 | + | |
| 231 | + // MARK: - buttonAction | |
| 232 | + @objc func leftQiuZhiAction(){ | |
| 233 | + self.show17Alert() | |
| 234 | + } | |
| 235 | + @objc func rightZhiYeAction(){ | |
| 236 | + self.show17Alert() | |
| 237 | + } | |
| 238 | + @objc func zhiyuanzheAction(){ | |
| 239 | + self.show17Alert() | |
| 240 | + } | |
| 241 | + @objc func yangLaoHuLiYuanAction(){ | |
| 242 | + self.show17Alert() | |
| 243 | + } | |
| 244 | + @objc func erTongPeiBanShiAction(){ | |
| 245 | + self.show17Alert() | |
| 246 | + } | |
| 247 | + @objc func xinLiZhiYunShiAction(){ | |
| 248 | + self.show17Alert() | |
| 249 | + } | |
| 250 | + @objc func JiaTingJiaoYuAction(){ | |
| 251 | + self.show17Alert() | |
| 252 | + } | |
| 253 | + @objc func GaoKaoYiShuAction(){ | |
| 254 | + self.show17Alert() | |
| 255 | + } | |
| 256 | + @objc func ZhiYeGuiHuaAction(){ | |
| 257 | + self.show17Alert() | |
| 258 | + } | |
| 259 | + | |
| 260 | + let delegate = UIApplication.shared.delegate as! AppDelegate | |
| 261 | + /// 未认证-inputType17时弹窗背景图 | |
| 262 | + lazy var alertBgImgView:UIImageView = { | |
| 263 | + let alertBgImgView:UIImageView = UIImageView() | |
| 264 | + alertBgImgView.tag = 20001 | |
| 265 | + alertBgImgView.isUserInteractionEnabled = true | |
| 266 | + let ges = UITapGestureRecognizer(target: self, action: #selector(alertBgImgViewClickAction)) | |
| 267 | + alertBgImgView.addGestureRecognizer(ges) | |
| 268 | + | |
| 269 | + return alertBgImgView | |
| 270 | + }() | |
| 271 | + lazy var alertBgView:UIView = { | |
| 272 | + let alertBgView:UIView = UIView(frame: CGRect(x: 0, y: 0, width: KSreenWidth, height: KSreenHeight)) | |
| 273 | + alertBgView.backgroundColor = HexColor("#000000") | |
| 274 | + alertBgView.alpha = 0.6 | |
| 275 | + alertBgView.isUserInteractionEnabled = true | |
| 276 | + alertBgView.tag = 20000 | |
| 277 | + | |
| 278 | + let ges = UITapGestureRecognizer(target: self, action: #selector(alertBgViewClickAction)) | |
| 279 | + alertBgView.addGestureRecognizer(ges) | |
| 280 | + | |
| 281 | + return alertBgView | |
| 282 | + }() | |
| 283 | + // MARK: - 点击弹窗,按类型跳转 | |
| 284 | + @objc func alertBgImgViewClickAction() { | |
| 285 | + self.hiden17Alert() | |
| 286 | + } | |
| 287 | + @objc func alertBgViewClickAction() { | |
| 288 | + //点击蒙版隐藏view | |
| 289 | + self.hiden17Alert() | |
| 290 | + } | |
| 291 | + //弹出弹窗 | |
| 292 | + func show17Alert(){ | |
| 293 | + | |
| 294 | + delegate.window?.addSubview(self.alertBgView) | |
| 295 | + delegate.window?.addSubview(self.alertBgImgView) | |
| 296 | + alertBgImgView.snp.makeConstraints { make in | |
| 297 | + make.centerX.equalToSuperview() | |
| 298 | + make.centerY.equalToSuperview() | |
| 299 | + make.width.equalTo(KSreenWidth-80) | |
| 300 | + make.height.equalTo((KSreenWidth-80)*170.5/295) | |
| 301 | + } | |
| 302 | + | |
| 303 | + self.alertBgImgView.image = UIImage(named: "auth_alert_unOpen") | |
| 304 | + } | |
| 305 | + func hiden17Alert(){ | |
| 306 | + delegate.window?.subviews.forEach({ view in | |
| 307 | + if view.tag >= 20000{ | |
| 308 | + view.removeFromSuperview() | |
| 309 | + } | |
| 310 | + }) | |
| 311 | + } | |
| 312 | +} | ... | ... |
metaCode/Classes/Main/HomePage/ViewModel/Vitae/CNLiveVitaeViewModel.swift
0 → 100644
| 1 | +// | |
| 2 | +// CNLiveVitaeViewModel.swift | |
| 3 | +// metaCode | |
| 4 | +// | |
| 5 | +// Created by zx on 2024/7/12. | |
| 6 | +// 数字简历 | |
| 7 | + | |
| 8 | +import Foundation | |
| 9 | +import CNLiveRequestBastKit | |
| 10 | + | |
| 11 | +class CNLiveVitaeViewModel:NSObject{ | |
| 12 | + | |
| 13 | + /* | |
| 14 | + 查看简历 | |
| 15 | + 参数 vsid 实名对象id | |
| 16 | + 参数 type 1简历信息 2官方认证 3证书 4工作经历 4获奖情况 | |
| 17 | + */ | |
| 18 | + static func getVitae(vsid:String,type:NSInteger,resultBlock: @escaping downSlideResultBlock) { | |
| 19 | + let param = NSMutableDictionary() | |
| 20 | + param.setValue(vsid, forKey: "vsid") | |
| 21 | + param.setValue("\(type)", forKey: "type") | |
| 22 | + CNLiveNetworking.setAllowRequestDefaultArgument(true) | |
| 23 | + CNLiveNetworking.setupShowDataResult(false) | |
| 24 | + CNLiveNetworking.setupDSRequest(true) | |
| 25 | + let custom_param = NSMutableDictionary() | |
| 26 | + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appId, forKey: "appId") | |
| 27 | + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appKey, forKey: "appKey") | |
| 28 | + CNLiveNetworking.setupCustomParam(custom_param as? [String : String]) | |
| 29 | + | |
| 30 | + CNLiveNetworking.requestNetwork(with: .GET, urlString: APPBaseMCUrl+"/userApi/getVitae", param: param as! [String : String], cacheType: .networkOnly) { task, result, error in | |
| 31 | + hiddenLoading() | |
| 32 | + if (error == nil) { | |
| 33 | + let resp = result as! NSDictionary | |
| 34 | + let dataDic = resp["data"] as! NSDictionary | |
| 35 | + let shopDetailModel = newDictionaryToModel(dataDic as! [String : Any], CNLiveVitaeModel.self) | |
| 36 | + resultBlock(shopDetailModel,.success) | |
| 37 | + }else{ | |
| 38 | + resultBlock(NSNull(),.failed) | |
| 39 | + } | |
| 40 | + } | |
| 41 | + | |
| 42 | + } | |
| 43 | + /* | |
| 44 | + 保存简历/更新简历 | |
| 45 | + 参数 vsid 实名对象id | |
| 46 | + 参数 type 1简历信息 2官方认证 3证书 4工作经历 4获奖情况 | |
| 47 | + */ | |
| 48 | + static func saveVitae(city:String,icon:String,isSave:Bool,id:NSInteger,phone:String,profession:String,professionId:NSInteger,selfIntroduction:String,showAddress:Bool,showAge:Bool,showAwards:Bool,showPhone:Bool,updateTime:String,vsid:String,workTime:String,resultBlock: @escaping downSlideResultBlock) { | |
| 49 | + let values = NSMutableDictionary() | |
| 50 | + values.addEntries(from: ["city":city]) | |
| 51 | + values.addEntries(from: ["icon":icon]) | |
| 52 | + //简历为nil保存简历时 不传id; 更新简历时id传简历的vitaeid | |
| 53 | + if !isSave{ | |
| 54 | + values.addEntries(from: ["id":id]) | |
| 55 | + } | |
| 56 | + values.addEntries(from: ["phone":phone]) | |
| 57 | + values.addEntries(from: ["profession":profession]) | |
| 58 | + values.addEntries(from: ["professionId":professionId]) | |
| 59 | + values.addEntries(from: ["selfIntroduction":selfIntroduction]) | |
| 60 | + values.addEntries(from: ["showAddress":showAddress]) | |
| 61 | + values.addEntries(from: ["showAge":showAge]) | |
| 62 | + values.addEntries(from: ["showAwards":showAwards]) | |
| 63 | + values.addEntries(from: ["showPhone":showPhone]) | |
| 64 | + values.addEntries(from: ["updateTime":updateTime]) | |
| 65 | + values.addEntries(from: ["vsid":vsid]) | |
| 66 | + values.addEntries(from: ["workTime":workTime]) | |
| 67 | + do { | |
| 68 | + let request = URLRequest.init(url: URL.init(string: APPBaseMCUrl+"/userApi/saveVitae")!) as! NSMutableURLRequest | |
| 69 | + request.httpMethod = "POST" | |
| 70 | + request.timeoutInterval = 10 | |
| 71 | + request.setValue("application/json", forHTTPHeaderField: "Content-Type") | |
| 72 | + let data = try JSONSerialization.data(withJSONObject: values, options: .prettyPrinted) | |
| 73 | + request.httpBody = data | |
| 74 | + showLoading(message: "") | |
| 75 | + let custom_param = NSMutableDictionary() | |
| 76 | + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appId, forKey: "appId") | |
| 77 | + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appKey, forKey: "appKey") | |
| 78 | + CNLiveNetworking.setupCustomParam(custom_param as? [String : String]) | |
| 79 | + CNLiveNetworking.setAllowRequestDefaultArgument(false) | |
| 80 | + CNLiveNetworking.setupShowDataResult(false) | |
| 81 | + CNLiveNetworking.setBuildCustomUrlRequest(request as URLRequest) { task, result, error in | |
| 82 | + hiddenLoading() | |
| 83 | + if (error == nil) { | |
| 84 | + let resp = result as! NSDictionary | |
| 85 | + let errorCode = "\(resp["errorCode"] ?? "0")" | |
| 86 | + if (errorCode == "0") { | |
| 87 | + resultBlock(true,.success) | |
| 88 | + } else { | |
| 89 | + showMessage(message: resp["errorMessage"] as! String) | |
| 90 | + resultBlock(NSNull(),.failed) | |
| 91 | + } | |
| 92 | + } else { | |
| 93 | + if CNLiveNetworking.isNetworking() { | |
| 94 | + showMessage(message: "上传失败") | |
| 95 | + resultBlock(NSNull(),.failed) | |
| 96 | + } else { | |
| 97 | + showMessage(message: "似乎与网络断开链接") | |
| 98 | + resultBlock(NSNull(),.noNetwork) | |
| 99 | + } | |
| 100 | + } | |
| 101 | + } | |
| 102 | + } catch { | |
| 103 | + showMessage(message: "上传失败") | |
| 104 | + resultBlock(NSNull(),.failed) | |
| 105 | + } | |
| 106 | + | |
| 107 | + } | |
| 108 | + | |
| 109 | +} | |
| 110 | + | |
| 111 | + | ... | ... |
metaCode/Classes/Main/Model/CNLiveShopConsoleModel.swift renamed to metaCode/Classes/Main/Model/ShopCoupon/CNLiveShopConsoleModel.swift
metaCode/Classes/Main/Model/Vitae/CNLiveVitaeModel.swift
0 → 100644
| 1 | +// | |
| 2 | +// CNLiveVitaeModel.swift | |
| 3 | +// metaCode | |
| 4 | +// | |
| 5 | +// Created by zx on 2024/7/12. | |
| 6 | +// 数字简历 /userApi/getVitae | |
| 7 | + | |
| 8 | +import Foundation | |
| 9 | + | |
| 10 | +class CNLiveVitaeModel:BaseModel{ | |
| 11 | + ///简历 | |
| 12 | + var vitae: CNLiveVitaeVitaeModel? | |
| 13 | + ///身份 | |
| 14 | + var identities = [CNLiveVitaeIdentitiesModel]() | |
| 15 | + //工作 | |
| 16 | + var works = [CNLiveVitaeWorksModel]() | |
| 17 | + //证书 | |
| 18 | + var certificates = [CNLiveVitaeCertificatesModel]() | |
| 19 | + //奖 | |
| 20 | + var awards = [CNLiveVitaeAwardsModel]() | |
| 21 | + | |
| 22 | +} | |
| 23 | +//简历模块 | |
| 24 | +class CNLiveVitaeVitaeModel:BaseModel{ | |
| 25 | + ///id | |
| 26 | + var id: Int = 0 | |
| 27 | + var vsid: Int = 0 | |
| 28 | + ///职业 | |
| 29 | + var profession:String = "" | |
| 30 | + ///职业id | |
| 31 | + var professionId:String = "" | |
| 32 | + /// | |
| 33 | + var icon:String = "" | |
| 34 | + /// | |
| 35 | + var phone:String = "" | |
| 36 | + /// | |
| 37 | + var selfIntroduction:String = "" | |
| 38 | + /// | |
| 39 | + var city:String = "" | |
| 40 | + /// | |
| 41 | + var workTime:String = "" | |
| 42 | + /// | |
| 43 | + var showAge:Bool = false | |
| 44 | + /// | |
| 45 | + var showAddress:Bool = false | |
| 46 | + /// | |
| 47 | + var showAwards:Bool = false | |
| 48 | + /// | |
| 49 | + var updateTime:String = "" | |
| 50 | +} | |
| 51 | +//简历身份模块 | |
| 52 | +class CNLiveVitaeIdentitiesModel:BaseModel{ | |
| 53 | + /// | |
| 54 | + var identityId: Int = 0 | |
| 55 | + /// | |
| 56 | + var name:String = "" | |
| 57 | + /// | |
| 58 | + var icon:String = "" | |
| 59 | + /// | |
| 60 | + var authTime:String = "" | |
| 61 | + /// | |
| 62 | + var selfIntroduction:String = "" | |
| 63 | + /// | |
| 64 | + var city:String = "" | |
| 65 | + /// | |
| 66 | + var workTime:String = "" | |
| 67 | + /// | |
| 68 | + var userStatus:Int = 0 | |
| 69 | + ///不知道类型 | |
| 70 | + var authInfos:String = "" | |
| 71 | + | |
| 72 | +// { | |
| 73 | +// "identityId": 100901, | |
| 74 | +// "name": "前端开发工程师", | |
| 75 | +// "icon": "https://wjj.ys2.cnliveimg.com/769/meta_image/1717057461458.webp", | |
| 76 | +// "authTime": null, | |
| 77 | +// "userStatus": null, | |
| 78 | +// "authInfos": null | |
| 79 | +// } | |
| 80 | +} | |
| 81 | + | |
| 82 | +//简历工作模块 | |
| 83 | +class CNLiveVitaeWorksModel:BaseModel{ | |
| 84 | + /// | |
| 85 | + var id: Int = 0 | |
| 86 | + /// | |
| 87 | + var vitaeId:String = "" | |
| 88 | + /// | |
| 89 | + var vsid:String = "" | |
| 90 | + /// | |
| 91 | + var profession:String = "" | |
| 92 | + /// | |
| 93 | + var position:String = "" | |
| 94 | + /// | |
| 95 | + var companyName:String = "" | |
| 96 | + /// | |
| 97 | + var jobDuties:String = "" | |
| 98 | + /// | |
| 99 | + var startWorkingDate:String = "" | |
| 100 | + /// | |
| 101 | + var endWorkingDate:String = "" | |
| 102 | + /// | |
| 103 | + var city:String = "" | |
| 104 | + /// | |
| 105 | + var imgs:String = "" | |
| 106 | + | |
| 107 | +} | |
| 108 | + | |
| 109 | +//简历证书模块 | |
| 110 | +class CNLiveVitaeCertificatesModel:BaseModel{ | |
| 111 | + /// | |
| 112 | + var id: Int = 0 | |
| 113 | + /// | |
| 114 | + var img:String = "" | |
| 115 | + /// | |
| 116 | + var vsid:String = "" | |
| 117 | + /// | |
| 118 | + var title:String = "" | |
| 119 | + /// | |
| 120 | + var uploadTime:String = "" | |
| 121 | + /// | |
| 122 | + var status:Int = 0 | |
| 123 | + /// | |
| 124 | + var number:String = "" | |
| 125 | + /// | |
| 126 | + var lv:String = "" | |
| 127 | + /// | |
| 128 | + var time:String = "" | |
| 129 | + /// | |
| 130 | + var organization:String = "" | |
| 131 | + /// | |
| 132 | + var validity:String = "" | |
| 133 | +} | |
| 134 | + | |
| 135 | +//简历奖模块 | |
| 136 | +class CNLiveVitaeAwardsModel:BaseModel{ | |
| 137 | + /// | |
| 138 | + var id: Int = 0 | |
| 139 | + /// | |
| 140 | + var vsid:String = "" | |
| 141 | + /// | |
| 142 | + var vitaeId:String = "" | |
| 143 | + /// | |
| 144 | + var title:String = "" | |
| 145 | + /// | |
| 146 | + var time:String = "" | |
| 147 | + /// | |
| 148 | + var company:Int = 0 | |
| 149 | + /// | |
| 150 | + var description:String = "" | |
| 151 | + /// | |
| 152 | + var imgs:String = "" | |
| 153 | +} | |
| 154 | +/** | |
| 155 | + "data": { | |
| 156 | + "vitae": { | |
| 157 | + "id": 8, | |
| 158 | + "vsid": 13, | |
| 159 | + "profession": "互联网/AI · 前端/移动开发", | |
| 160 | + "professionId": 1000030, | |
| 161 | + "icon": "http://wjjtest.ys2.cnliveimg.com/802/img/vitae_avatar/2024/07/12/172074886708115930228.png", | |
| 162 | + "phone": "99855544478", | |
| 163 | + "selfIntroduction": "超级超级超级富豪复古坚持坚持好童发发发@长春师范发\n粗茶淡饭\n\n宝宝\n你那边吧v\n葛根粉粉吃炒饭的人方法", | |
| 164 | + "city": "吉林省延边朝鲜族自治州", | |
| 165 | + "workTime": "2015-04-05", | |
| 166 | + "showAge": true, | |
| 167 | + "showPhone": true, | |
| 168 | + "showAddress": false, | |
| 169 | + "showAwards": false, | |
| 170 | + "updateTime": 1720762878000 | |
| 171 | + }, | |
| 172 | + "identities": [ | |
| 173 | + { | |
| 174 | + "identityId": 100901, | |
| 175 | + "name": "前端开发工程师", | |
| 176 | + "icon": "https://wjj.ys2.cnliveimg.com/769/meta_image/1717057461458.webp", | |
| 177 | + "authTime": null, | |
| 178 | + "userStatus": null, | |
| 179 | + "authInfos": null | |
| 180 | + }, | |
| 181 | + { | |
| 182 | + "identityId": 100202, | |
| 183 | + "name": "Android开发", | |
| 184 | + "icon": "https://wjj.ys2.cnliveimg.com/769/meta_image/1717057523284.jpg", | |
| 185 | + "authTime": null, | |
| 186 | + "userStatus": null, | |
| 187 | + "authInfos": null | |
| 188 | + } | |
| 189 | + ], | |
| 190 | + "works": [ | |
| 191 | + { | |
| 192 | + "id": 9, | |
| 193 | + "vitaeId": 8, | |
| 194 | + "vsid": 13, | |
| 195 | + "profession": "互联网/AI·前端/移动开发", | |
| 196 | + "position": "安卓开发", | |
| 197 | + "companyName": "", | |
| 198 | + "jobDuties": "vv吃饭长相厮守广告费\n广告费高校招生桂vv多大\n\n霍黑化股份刚发的\n黑科技关系\n脚后跟\n\n看见就看见", | |
| 199 | + "startWorkingDate": 1625443200000, | |
| 200 | + "endWorkingDate": 1720137600000, | |
| 201 | + "city": "", | |
| 202 | + "imgs": "http://wjjtest.ys2.cnliveimg.com/802/img/vitae_0/2024/07/05/172015273767714253238.jpg,http://wjjtest.ys2.cnliveimg.com/802/img/vitae_1/2024/07/05/172015273768665127233.jpg,http://wjjtest.ys2.cnliveimg.com/802/img/vitae_2/2024/07/05/172015273768852343438.jpg,http://wjjtest.ys2.cnliveimg.com/802/img/vitae_3/2024/07/05/172015273769060558156.jpg" | |
| 203 | + }, | |
| 204 | + { | |
| 205 | + "id": 8, | |
| 206 | + "vitaeId": 8, | |
| 207 | + "vsid": 13, | |
| 208 | + "profession": "互联网/AI·前端/移动开发", | |
| 209 | + "position": "Android软件研发工程师", | |
| 210 | + "companyName": "中投视讯", | |
| 211 | + "jobDuties": "就是觉集体经济呱唧呱唧呱唧呱唧高级高级高级高级伽伽得就到你发酒疯减肥减肥发奖金发酒疯就放假发家,团队协同研发\"好家园\"、\"元码\"等App\n\n哈哈哈\n\n好尴尬", | |
| 212 | + "startWorkingDate": 1441843200000, | |
| 213 | + "endWorkingDate": 1915056000000, | |
| 214 | + "city": "北京市", | |
| 215 | + "imgs": "http://wjjtest.ys2.cnliveimg.com/802/img/vitae_video_0/2024/07/12/172075733914467248444.mp4,http://wjjtest.ys2.cnliveimg.com/802/img/vitae_0/2024/07/05/172014751998862535917.heic,http://wjjtest.ys2.cnliveimg.com/802/img/vitae_0/2024/07/11/172069307910466716490.jpg,http://wjjtest.ys2.cnliveimg.com/802/img/vitae_1/2024/07/11/172069307912474123160.jpg,http://wjjtest.ys2.cnliveimg.com/802/img/vitae_2/2024/07/11/172069307913311639676.jpg,http://wjjtest.ys2.cnliveimg.com/802/img/vitae_3/2024/07/11/172069307914163148297.jpg,http://wjjtest.ys2.cnliveimg.com/802/img/vitae_4/2024/07/11/172069307915129814099.jpg,http://wjjtest.ys2.cnliveimg.com/802/img/vitae_photo_0/2024/07/12/172075483116163173783.jpg" | |
| 216 | + } | |
| 217 | + ], | |
| 218 | + "certificates": [ | |
| 219 | + { | |
| 220 | + "id": 8, | |
| 221 | + "vsid": 13, | |
| 222 | + "img": "https://p2.itc.cn/q_70/images03/20220510/3f47f88c98f24c55ba127050b772ab86.png", | |
| 223 | + "title": "测试证书", | |
| 224 | + "uploadTime": 1720503121000, | |
| 225 | + "status": 0, | |
| 226 | + "number": "o983982398", | |
| 227 | + "lv": "", | |
| 228 | + "time": "", | |
| 229 | + "organization": "测试机构", | |
| 230 | + "validity": "" | |
| 231 | + }, | |
| 232 | + { | |
| 233 | + "id": 4, | |
| 234 | + "vsid": 13, | |
| 235 | + "img": "http://wjjtest.ys2.cnliveimg.com/802/img/vitae_0/2024/07/08/172041582379642062479.png", | |
| 236 | + "title": "全国计算机信息高新技术考试合格证书", | |
| 237 | + "uploadTime": 1720415826000, | |
| 238 | + "status": 1, | |
| 239 | + "number": "21085639858812", | |
| 240 | + "lv": "", | |
| 241 | + "time": "", | |
| 242 | + "organization": "人社部职业技能鉴定中心", | |
| 243 | + "validity": "" | |
| 244 | + } | |
| 245 | + ], | |
| 246 | + "awards": [ | |
| 247 | + { | |
| 248 | + "id": 7, | |
| 249 | + "vsid": 13, | |
| 250 | + "vitaeId": 8, | |
| 251 | + "title": "计算机", | |
| 252 | + "time": 1625788800000, | |
| 253 | + "company": "测试颁发单位", | |
| 254 | + "description": "对对对,就是", | |
| 255 | + "imgs": "http://wjjtest.ys2.cnliveimg.com/802/img/vitae_0/2024/07/09/172049653128082972484.jpg,http://wjjtest.ys2.cnliveimg.com/802/img/vitae_0/2024/07/12/172076288039519102085.jpg" | |
| 256 | + }, | |
| 257 | + { | |
| 258 | + "id": 2, | |
| 259 | + "vsid": 13, | |
| 260 | + "vitaeId": 8, | |
| 261 | + "title": "天马行空奖", | |
| 262 | + "time": 1564963200000, | |
| 263 | + "company": "家庭厨房", | |
| 264 | + "description": "家有星厨大奖赛第二期", | |
| 265 | + "imgs": "http://wjjtest.ys2.cnliveimg.com/802/img/vitae_0/2024/07/04/172008646664964885417.heic" | |
| 266 | + } | |
| 267 | + ] | |
| 268 | + } | |
| 269 | + **/ | ... | ... |
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_back.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "mine_jianli_back@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "mine_jianli_back@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/mine_jianli_back.imageset/mine_jianli_back@2x.png
0 → 100644
303 Bytes
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_back.imageset/mine_jianli_back@3x.png
0 → 100644
528 Bytes
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_gaokao.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "mine_jianli_gaokao@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "mine_jianli_gaokao@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/mine_jianli_gaokao.imageset/mine_jianli_gaokao@2x.png
0 → 100644
37.8 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_gaokao.imageset/mine_jianli_gaokao@3x.png
0 → 100644
74.7 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_grayIcon.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "mine_jianli_icon@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "mine_jianli_icon@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/mine_jianli_grayIcon.imageset/mine_jianli_icon@2x.png
0 → 100644
8.94 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_grayIcon.imageset/mine_jianli_icon@3x.png
0 → 100644
16.4 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_huliyuan.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "mine_jianli_huliyuan@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "mine_jianli_huliyuan@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/mine_jianli_huliyuan.imageset/mine_jianli_huliyuan@2x.png
0 → 100644
43.1 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_huliyuan.imageset/mine_jianli_huliyuan@3x.png
0 → 100644
82.2 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_icon.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "mine_jianli_icon@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "mine_jianli_icon@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/mine_jianli_icon.imageset/mine_jianli_icon@2x.png
0 → 100644
12.3 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_icon.imageset/mine_jianli_icon@3x.png
0 → 100644
29.6 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_iconbg.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "mine_jianli_iconbg@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "mine_jianli_iconbg@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/mine_jianli_iconbg.imageset/mine_jianli_iconbg@2x.png
0 → 100644
7.8 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_iconbg.imageset/mine_jianli_iconbg@3x.png
0 → 100644
14.5 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_jiating.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "mine_jianli_jiating@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "mine_jianli_jiating@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/mine_jianli_jiating.imageset/mine_jianli_jiating@2x.png
0 → 100644
31.8 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_jiating.imageset/mine_jianli_jiating@3x.png
0 → 100644
60.4 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_peibanshi.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "mine_jianli_peibanshi@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "mine_jianli_peibanshi@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/mine_jianli_peibanshi.imageset/mine_jianli_peibanshi@2x.png
0 → 100644
49.7 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_peibanshi.imageset/mine_jianli_peibanshi@3x.png
0 → 100644
96.3 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_qiuzhi.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "mine_jianli_qiuzhi.jpg", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "idiom" : "universal", | |
| 14 | + "scale" : "3x" | |
| 15 | + } | |
| 16 | + ], | |
| 17 | + "info" : { | |
| 18 | + "author" : "xcode", | |
| 19 | + "version" : 1 | |
| 20 | + } | |
| 21 | +} | ... | ... |
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_qiuzhi.imageset/mine_jianli_qiuzhi.jpg
0 → 100644
62.4 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_xinli.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "mine_jianli_xinli@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "mine_jianli_xinli@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/mine_jianli_xinli.imageset/mine_jianli_xinli@2x.png
0 → 100644
32.5 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_xinli.imageset/mine_jianli_xinli@3x.png
0 → 100644
64.1 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_zhiye.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "mine_jianli_zhiye.jpg", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "idiom" : "universal", | |
| 14 | + "scale" : "3x" | |
| 15 | + } | |
| 16 | + ], | |
| 17 | + "info" : { | |
| 18 | + "author" : "xcode", | |
| 19 | + "version" : 1 | |
| 20 | + } | |
| 21 | +} | ... | ... |
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_zhiye.imageset/mine_jianli_zhiye.jpg
0 → 100644
67 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_zhiyeguigua.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "mine_jianli_zhiyeguigua@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "mine_jianli_zhiyeguigua@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/mine_jianli_zhiyeguigua.imageset/mine_jianli_zhiyeguigua@2x.png
0 → 100644
45.5 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_zhiyeguigua.imageset/mine_jianli_zhiyeguigua@3x.png
0 → 100644
88.9 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_zhiyuanzhe.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "mine_jianli_zhiyuanzhe@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "mine_jianli_zhiyuanzhe@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/mine_jianli_zhiyuanzhe.imageset/mine_jianli_zhiyuanzhe@2x.png
0 → 100644
61.3 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_jianli_zhiyuanzhe.imageset/mine_jianli_zhiyuanzhe@3x.png
0 → 100644
120 KB