Commit a91fb738589961efa81e5766c851ce3e3d348e7a
1 parent
595ab157
保存位置 省市区
Showing
7 changed files
with
669 additions
and
176 deletions
metaCode.xcodeproj/project.pbxproj
| @@ -73,6 +73,8 @@ | @@ -73,6 +73,8 @@ | ||
| 73 | 192336EB2AD9224300D47CD4 /* CNUpSlideViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 192336EA2AD9224300D47CD4 /* CNUpSlideViewController.swift */; }; | 73 | 192336EB2AD9224300D47CD4 /* CNUpSlideViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 192336EA2AD9224300D47CD4 /* CNUpSlideViewController.swift */; }; |
| 74 | 1926C28F2AE0D76C00C71DC3 /* CNLiveDownSlideViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1926C28E2AE0D76C00C71DC3 /* CNLiveDownSlideViewModel.swift */; }; | 74 | 1926C28F2AE0D76C00C71DC3 /* CNLiveDownSlideViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1926C28E2AE0D76C00C71DC3 /* CNLiveDownSlideViewModel.swift */; }; |
| 75 | 1926C2912AE0FD4500C71DC3 /* CNLiveDownSlideModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1926C2902AE0FD4500C71DC3 /* CNLiveDownSlideModel.swift */; }; | 75 | 1926C2912AE0FD4500C71DC3 /* CNLiveDownSlideModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1926C2902AE0FD4500C71DC3 /* CNLiveDownSlideModel.swift */; }; |
| 76 | + 192ED4632C4A642F0057244C /* CNLiveAddrAreaModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 192ED4622C4A642F0057244C /* CNLiveAddrAreaModel.swift */; }; | ||
| 77 | + 192ED4652C4DF6340057244C /* CNLiveDigitalResumeInfoSelectAddressController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 192ED4642C4DF6340057244C /* CNLiveDigitalResumeInfoSelectAddressController.swift */; }; | ||
| 76 | 1938BD172B3D6C7F00390A34 /* CNLiveAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1938BD162B3D6C7F00390A34 /* CNLiveAuthViewController.swift */; }; | 78 | 1938BD172B3D6C7F00390A34 /* CNLiveAuthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1938BD162B3D6C7F00390A34 /* CNLiveAuthViewController.swift */; }; |
| 77 | 1938BD202B46799A00390A34 /* CNLivePlayletHomePageController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1938BD1F2B46799A00390A34 /* CNLivePlayletHomePageController.swift */; }; | 79 | 1938BD202B46799A00390A34 /* CNLivePlayletHomePageController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1938BD1F2B46799A00390A34 /* CNLivePlayletHomePageController.swift */; }; |
| 78 | 1938BD222B467C1700390A34 /* CNLivePlayletHomePageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1938BD212B467C1700390A34 /* CNLivePlayletHomePageCell.swift */; }; | 80 | 1938BD222B467C1700390A34 /* CNLivePlayletHomePageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1938BD212B467C1700390A34 /* CNLivePlayletHomePageCell.swift */; }; |
| @@ -388,6 +390,8 @@ | @@ -388,6 +390,8 @@ | ||
| 388 | 192336EA2AD9224300D47CD4 /* CNUpSlideViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNUpSlideViewController.swift; sourceTree = "<group>"; }; | 390 | 192336EA2AD9224300D47CD4 /* CNUpSlideViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNUpSlideViewController.swift; sourceTree = "<group>"; }; |
| 389 | 1926C28E2AE0D76C00C71DC3 /* CNLiveDownSlideViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveDownSlideViewModel.swift; sourceTree = "<group>"; }; | 391 | 1926C28E2AE0D76C00C71DC3 /* CNLiveDownSlideViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveDownSlideViewModel.swift; sourceTree = "<group>"; }; |
| 390 | 1926C2902AE0FD4500C71DC3 /* CNLiveDownSlideModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveDownSlideModel.swift; sourceTree = "<group>"; }; | 392 | 1926C2902AE0FD4500C71DC3 /* CNLiveDownSlideModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveDownSlideModel.swift; sourceTree = "<group>"; }; |
| 393 | + 192ED4622C4A642F0057244C /* CNLiveAddrAreaModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveAddrAreaModel.swift; sourceTree = "<group>"; }; | ||
| 394 | + 192ED4642C4DF6340057244C /* CNLiveDigitalResumeInfoSelectAddressController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveDigitalResumeInfoSelectAddressController.swift; sourceTree = "<group>"; }; | ||
| 391 | 1938BD162B3D6C7F00390A34 /* CNLiveAuthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveAuthViewController.swift; sourceTree = "<group>"; }; | 395 | 1938BD162B3D6C7F00390A34 /* CNLiveAuthViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveAuthViewController.swift; sourceTree = "<group>"; }; |
| 392 | 1938BD1F2B46799A00390A34 /* CNLivePlayletHomePageController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLivePlayletHomePageController.swift; sourceTree = "<group>"; }; | 396 | 1938BD1F2B46799A00390A34 /* CNLivePlayletHomePageController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLivePlayletHomePageController.swift; sourceTree = "<group>"; }; |
| 393 | 1938BD212B467C1700390A34 /* CNLivePlayletHomePageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLivePlayletHomePageCell.swift; sourceTree = "<group>"; }; | 397 | 1938BD212B467C1700390A34 /* CNLivePlayletHomePageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLivePlayletHomePageCell.swift; sourceTree = "<group>"; }; |
| @@ -1133,6 +1137,7 @@ | @@ -1133,6 +1137,7 @@ | ||
| 1133 | 194134972C292199004FC047 /* CNLiveIdentityRepositoryController.swift */, | 1137 | 194134972C292199004FC047 /* CNLiveIdentityRepositoryController.swift */, |
| 1134 | 19DFE63F2C3FC5F400E428AE /* CNLiveDigitalResumeController.swift */, | 1138 | 19DFE63F2C3FC5F400E428AE /* CNLiveDigitalResumeController.swift */, |
| 1135 | 19DFE64C2C4792C500E428AE /* CNLiveDigitalResumeInfoController.swift */, | 1139 | 19DFE64C2C4792C500E428AE /* CNLiveDigitalResumeInfoController.swift */, |
| 1140 | + 192ED4642C4DF6340057244C /* CNLiveDigitalResumeInfoSelectAddressController.swift */, | ||
| 1136 | ); | 1141 | ); |
| 1137 | path = DigitalAuth; | 1142 | path = DigitalAuth; |
| 1138 | sourceTree = "<group>"; | 1143 | sourceTree = "<group>"; |
| @@ -1190,6 +1195,7 @@ | @@ -1190,6 +1195,7 @@ | ||
| 1190 | isa = PBXGroup; | 1195 | isa = PBXGroup; |
| 1191 | children = ( | 1196 | children = ( |
| 1192 | 19DFE6452C41099900E428AE /* CNLiveVitaeModel.swift */, | 1197 | 19DFE6452C41099900E428AE /* CNLiveVitaeModel.swift */, |
| 1198 | + 192ED4622C4A642F0057244C /* CNLiveAddrAreaModel.swift */, | ||
| 1193 | ); | 1199 | ); |
| 1194 | path = Vitae; | 1200 | path = Vitae; |
| 1195 | sourceTree = "<group>"; | 1201 | sourceTree = "<group>"; |
| @@ -2026,6 +2032,7 @@ | @@ -2026,6 +2032,7 @@ | ||
| 2026 | 19123FC12ABC11170075C883 /* CNWebViewController.swift in Sources */, | 2032 | 19123FC12ABC11170075C883 /* CNWebViewController.swift in Sources */, |
| 2027 | 1926C28F2AE0D76C00C71DC3 /* CNLiveDownSlideViewModel.swift in Sources */, | 2033 | 1926C28F2AE0D76C00C71DC3 /* CNLiveDownSlideViewModel.swift in Sources */, |
| 2028 | 790D019D2A2DCBD000C5978D /* UIView+CNLiveExtensions.swift in Sources */, | 2034 | 790D019D2A2DCBD000C5978D /* UIView+CNLiveExtensions.swift in Sources */, |
| 2035 | + 192ED4652C4DF6340057244C /* CNLiveDigitalResumeInfoSelectAddressController.swift in Sources */, | ||
| 2029 | 19B153CF2BC540FF0018906C /* CNLivePayOrderInfoModel.swift in Sources */, | 2036 | 19B153CF2BC540FF0018906C /* CNLivePayOrderInfoModel.swift in Sources */, |
| 2030 | 7C7C62F62A4D72E9007A912E /* CNLiveIdentityDB.swift in Sources */, | 2037 | 7C7C62F62A4D72E9007A912E /* CNLiveIdentityDB.swift in Sources */, |
| 2031 | 191732E52B05FFE8007BCC04 /* CNLiveModalPresentationViewController.swift in Sources */, | 2038 | 191732E52B05FFE8007BCC04 /* CNLiveModalPresentationViewController.swift in Sources */, |
| @@ -2188,6 +2195,7 @@ | @@ -2188,6 +2195,7 @@ | ||
| 2188 | 194134882C1FE4E7004FC047 /* CNLiveDigitalAssetsController.swift in Sources */, | 2195 | 194134882C1FE4E7004FC047 /* CNLiveDigitalAssetsController.swift in Sources */, |
| 2189 | 7CD6753F2A2740B0008354C1 /* CNDownSlideViewRemindView.swift in Sources */, | 2196 | 7CD6753F2A2740B0008354C1 /* CNDownSlideViewRemindView.swift in Sources */, |
| 2190 | 19565ECF2AF8D8F6007D6727 /* CNLiveShopGoodsListCell.swift in Sources */, | 2197 | 19565ECF2AF8D8F6007D6727 /* CNLiveShopGoodsListCell.swift in Sources */, |
| 2198 | + 192ED4632C4A642F0057244C /* CNLiveAddrAreaModel.swift in Sources */, | ||
| 2191 | 1965FA3E2AFB176E00F0F435 /* CNLiveShopAddGoodsSingleView.swift in Sources */, | 2199 | 1965FA3E2AFB176E00F0F435 /* CNLiveShopAddGoodsSingleView.swift in Sources */, |
| 2192 | 7CD6753C2A2740B0008354C1 /* CNUpSlideViewRemindView.swift in Sources */, | 2200 | 7CD6753C2A2740B0008354C1 /* CNUpSlideViewRemindView.swift in Sources */, |
| 2193 | 7939B0772B47F88A005AE981 /* CNLiveShortVideoControlView.swift in Sources */, | 2201 | 7939B0772B47F88A005AE981 /* CNLiveShortVideoControlView.swift in Sources */, |
metaCode/Classes/Main/HomePage/Controller/DigitalAuth/CNLiveDigitalResumeInfoController.swift
| @@ -11,6 +11,9 @@ import CoreLocation | @@ -11,6 +11,9 @@ import CoreLocation | ||
| 11 | 11 | ||
| 12 | 12 | ||
| 13 | class CNLiveDigitalResumeInfoController:CNLiveBaseViewController, UITextFieldDelegate,CLLocationManagerDelegate{ | 13 | class CNLiveDigitalResumeInfoController:CNLiveBaseViewController, UITextFieldDelegate,CLLocationManagerDelegate{ |
| 14 | + | ||
| 15 | + var selectAreaVC:CNLiveDigitalResumeInfoSelectAddressController? | ||
| 16 | + | ||
| 14 | let locationManager = CLLocationManager() | 17 | let locationManager = CLLocationManager() |
| 15 | 18 | ||
| 16 | lazy var topWhiteView :UIView = { | 19 | lazy var topWhiteView :UIView = { |
| @@ -461,8 +464,26 @@ class CNLiveDigitalResumeInfoController:CNLiveBaseViewController, UITextFieldDel | @@ -461,8 +464,26 @@ class CNLiveDigitalResumeInfoController:CNLiveBaseViewController, UITextFieldDel | ||
| 461 | 464 | ||
| 462 | // MARK: - ButtonAction | 465 | // MARK: - ButtonAction |
| 463 | @objc func weiZhiTapAction(){ | 466 | @objc func weiZhiTapAction(){ |
| 464 | - self.getPlacemarkAddress() | 467 | + self.displaySelectAreaVC() |
| 468 | + | ||
| 469 | +// self.getPlacemarkAddress() | ||
| 470 | + } | ||
| 471 | + func displaySelectAreaVC(){ | ||
| 472 | + if self.selectAreaVC == nil{ | ||
| 473 | + let vc = CNLiveDigitalResumeInfoSelectAddressController() | ||
| 474 | + vc.finishSelectAreaCallBack = { [weak self] in | ||
| 475 | + self?.weizhiRightTitleLabel.text = String(format: "%@%@%@",self?.selectAreaVC?.province ?? "",self?.selectAreaVC?.city ?? "",self?.selectAreaVC?.area ?? "" ) | ||
| 476 | + self?.saveWeiZhi(cityStreet: self?.weizhiRightTitleLabel.text ?? "") | ||
| 477 | + } | ||
| 478 | + self.addChild(vc) | ||
| 479 | + vc.view.frame = CGRect(x: 0, y: 0, width: self.view.width, height: self.view.height) | ||
| 480 | + self.view.addSubview(vc.view) | ||
| 481 | + vc.didMove(toParent: self) | ||
| 482 | + self.selectAreaVC = vc | ||
| 483 | + } | ||
| 484 | + self.selectAreaVC?.display() | ||
| 465 | } | 485 | } |
| 486 | + | ||
| 466 | func saveWeiZhi(cityStreet:String){ | 487 | func saveWeiZhi(cityStreet:String){ |
| 467 | if var userDic = UserDefaults.standard.dictionary(forKey: UserInfoManager.shared.userInfo.uid){ | 488 | if var userDic = UserDefaults.standard.dictionary(forKey: UserInfoManager.shared.userInfo.uid){ |
| 468 | userDic.updateValue(cityStreet, forKey: "cityStreet") | 489 | userDic.updateValue(cityStreet, forKey: "cityStreet") |
| @@ -474,60 +495,6 @@ class CNLiveDigitalResumeInfoController:CNLiveBaseViewController, UITextFieldDel | @@ -474,60 +495,6 @@ class CNLiveDigitalResumeInfoController:CNLiveBaseViewController, UITextFieldDel | ||
| 474 | UserDefaults.standard.synchronize() | 495 | UserDefaults.standard.synchronize() |
| 475 | } | 496 | } |
| 476 | } | 497 | } |
| 477 | - // 代理方法:当定位权限被确定时调用 | ||
| 478 | - func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) { | ||
| 479 | - if status == .authorizedWhenInUse || status == .authorizedAlways { | ||
| 480 | - // 权限已授权,可以开始获取位置信息 | ||
| 481 | - locationManager.startUpdatingLocation() | ||
| 482 | - } | ||
| 483 | - } | ||
| 484 | - | ||
| 485 | - // 代理方法:当位置更新时调用 | ||
| 486 | - func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { | ||
| 487 | - guard let location = locations.last else { return } | ||
| 488 | - | ||
| 489 | - // 停止更新位置以节省资源 | ||
| 490 | - locationManager.stopUpdatingLocation() | ||
| 491 | - | ||
| 492 | - // 反向地理编码位置以获取地址信息 | ||
| 493 | - let geocoder = CLGeocoder() | ||
| 494 | - geocoder.reverseGeocodeLocation(location, completionHandler: { (placemarks, error) in | ||
| 495 | - if let error = error { | ||
| 496 | - print("Geocoding failed with error: \(error.localizedDescription)") | ||
| 497 | - return | ||
| 498 | - } | ||
| 499 | - | ||
| 500 | - if let placemark = placemarks?.first { | ||
| 501 | - print("市区:\(placemark.locality ?? "")") | ||
| 502 | - print("街道:\(placemark.thoroughfare ?? "")") | ||
| 503 | - // 你可以根据需要进一步处理placemark对象 | ||
| 504 | - let cityStreet = (placemark.locality ?? "") + (placemark.thoroughfare ?? "") | ||
| 505 | - self.saveWeiZhi(cityStreet:cityStreet) | ||
| 506 | - self.weizhiRightTitleLabel.text = cityStreet | ||
| 507 | - } | ||
| 508 | - }) | ||
| 509 | - } | ||
| 510 | - | ||
| 511 | - // 代理方法:处理定位错误(可选) | ||
| 512 | - func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) { | ||
| 513 | - print("Location manager failed with error: \(error.localizedDescription)") | ||
| 514 | - } | ||
| 515 | - func getPlacemarkAddress() { | ||
| 516 | - // 检查定位服务是否可用 | ||
| 517 | - if CLLocationManager.locationServicesEnabled() { | ||
| 518 | - // 设置定位管理器的代理 | ||
| 519 | - locationManager.delegate = self | ||
| 520 | - // 请求前台使用时的定位权限 | ||
| 521 | - locationManager.requestWhenInUseAuthorization() | ||
| 522 | - // 配置定位管理器 | ||
| 523 | - locationManager.desiredAccuracy = kCLLocationAccuracyBest | ||
| 524 | - locationManager.startUpdatingLocation() | ||
| 525 | - } else { | ||
| 526 | - // 定位服务不可用 | ||
| 527 | - print("Location services are not enabled") | ||
| 528 | - } | ||
| 529 | - | ||
| 530 | - } | ||
| 531 | 498 | ||
| 532 | @objc func canJiaTapAction(){ | 499 | @objc func canJiaTapAction(){ |
| 533 | MineInfoAlertView.showSelectView(showType: .selectDay) { [weak self] text in | 500 | MineInfoAlertView.showSelectView(showType: .selectDay) { [weak self] text in |
metaCode/Classes/Main/HomePage/Controller/DigitalAuth/CNLiveDigitalResumeInfoSelectAddressController.swift
0 → 100644
| 1 | +// | ||
| 2 | +// CNLiveDigitalResumeInfoSelectAddressController.swift | ||
| 3 | +// metaCode | ||
| 4 | +// | ||
| 5 | +// Created by zx on 2024/7/22. | ||
| 6 | +// 数字简历信息-选择地址页面 | ||
| 7 | + | ||
| 8 | +import Foundation | ||
| 9 | + | ||
| 10 | +typealias FinishSelectAreaBlock = () -> Void | ||
| 11 | + | ||
| 12 | +class CNLiveDigitalResumeInfoSelectAddressController:CNLiveBaseViewController,UITableViewDelegate, UITableViewDataSource{ | ||
| 13 | + | ||
| 14 | + var provinceId:String = "" | ||
| 15 | + var province:String = "" | ||
| 16 | + var cityId:String = "" | ||
| 17 | + var city:String = "" | ||
| 18 | + var areaId:String = "" | ||
| 19 | + var area:String = "" | ||
| 20 | + | ||
| 21 | + var finishSelectAreaCallBack:FinishSelectAreaBlock? | ||
| 22 | + var shadowView:UIView? | ||
| 23 | + var contentView:UIView? | ||
| 24 | + var line:UIImageView? | ||
| 25 | + var provinceBtn:UIButton? | ||
| 26 | + var cityBtn:UIButton? | ||
| 27 | + var areaBtn:UIButton? | ||
| 28 | + var selectImageView:UIImageView? | ||
| 29 | + | ||
| 30 | + lazy var tableView : UITableView = { | ||
| 31 | + let tableView = UITableView(frame: CGRect(x: 0, y: self.line!.bottom, width: self.contentView!.width, height: self.contentView!.height-self.line!.bottom), style: .plain) | ||
| 32 | + tableView.dataSource = self | ||
| 33 | + tableView.delegate = self | ||
| 34 | + tableView.rowHeight = adapt_length(length: 40) | ||
| 35 | + tableView.showsVerticalScrollIndicator = false | ||
| 36 | + tableView.backgroundColor = .white | ||
| 37 | + tableView.separatorStyle = .none | ||
| 38 | + let headerView = UIView(frame: CGRect(x: 0, y: 0, width: self.contentView!.width, height: adapt_length(length: 5))) | ||
| 39 | + tableView.tableHeaderView = headerView | ||
| 40 | + return tableView | ||
| 41 | + }() | ||
| 42 | + | ||
| 43 | + var provinceDataArr:Array<CNLiveAddrAreaModel>? | ||
| 44 | + var cityDataArr:Array<CNLiveAddrAreaModel>? | ||
| 45 | + var areaDataArr:Array<CNLiveAddrAreaModel>? | ||
| 46 | + // MARK: - setter | ||
| 47 | + var _displayLevel:NSInteger? | ||
| 48 | + var displayLevel:NSInteger?{ | ||
| 49 | + get{ | ||
| 50 | + _displayLevel | ||
| 51 | + } | ||
| 52 | + set{ | ||
| 53 | + _displayLevel = newValue | ||
| 54 | + UIView.animate(withDuration: 0.2) { | ||
| 55 | + if (self.displayLevel == 2) { | ||
| 56 | + self.selectImageView!.centerX = self.cityBtn!.centerX | ||
| 57 | + self.cityBtn?.setTitleColor(HexColor("#333333"), for: .normal) | ||
| 58 | + }else if (self.displayLevel == 3) { | ||
| 59 | + self.selectImageView!.centerX = self.areaBtn!.centerX | ||
| 60 | + self.areaBtn?.setTitleColor(HexColor("#333333"), for: .normal) | ||
| 61 | + }else { | ||
| 62 | + self.selectImageView!.centerX = self.provinceBtn!.centerX | ||
| 63 | + } | ||
| 64 | + } | ||
| 65 | + } | ||
| 66 | + } | ||
| 67 | + //临时选中省 | ||
| 68 | + var _temp_selectProvinceModel:CNLiveAddrAreaModel? | ||
| 69 | + var temp_selectProvinceModel:CNLiveAddrAreaModel?{ | ||
| 70 | + get{ | ||
| 71 | + _temp_selectProvinceModel | ||
| 72 | + } | ||
| 73 | + set{ | ||
| 74 | + _temp_selectProvinceModel = newValue | ||
| 75 | + if ((_temp_selectProvinceModel) != nil) { | ||
| 76 | + self.provinceBtn?.setTitle(_temp_selectProvinceModel?.name, for: .normal) | ||
| 77 | + }else { | ||
| 78 | + self.provinceBtn?.setTitle("请选择", for: .normal) | ||
| 79 | + } | ||
| 80 | + } | ||
| 81 | + } | ||
| 82 | + //临时选中市 | ||
| 83 | + var _temp_selectCityModel:CNLiveAddrAreaModel? | ||
| 84 | + var temp_selectCityModel:CNLiveAddrAreaModel?{ | ||
| 85 | + get{ | ||
| 86 | + _temp_selectCityModel | ||
| 87 | + } | ||
| 88 | + set{ | ||
| 89 | + _temp_selectCityModel = newValue | ||
| 90 | + if ((_temp_selectCityModel) != nil) { | ||
| 91 | + self.cityBtn?.setTitle(_temp_selectCityModel?.name, for: .normal) | ||
| 92 | + self.cityBtn?.setTitleColor(HexColor("#333333"), for: .normal) | ||
| 93 | + }else { | ||
| 94 | + self.cityBtn?.setTitle("城市", for: .normal) | ||
| 95 | + if (self.displayLevel == 2) { | ||
| 96 | + self.cityBtn?.setTitleColor(HexColor("#333333"), for: .normal) | ||
| 97 | + }else { | ||
| 98 | + self.cityBtn?.setTitleColor(HexColor("#999999"), for: .normal) | ||
| 99 | + } | ||
| 100 | + } | ||
| 101 | + } | ||
| 102 | + } | ||
| 103 | + //临时选中区(县) | ||
| 104 | + var _temp_selectAreaModel:CNLiveAddrAreaModel? | ||
| 105 | + var temp_selectAreaModel:CNLiveAddrAreaModel?{ | ||
| 106 | + get{ | ||
| 107 | + _temp_selectAreaModel | ||
| 108 | + } | ||
| 109 | + set{ | ||
| 110 | + _temp_selectAreaModel = newValue | ||
| 111 | + if ((_temp_selectAreaModel) != nil) { | ||
| 112 | + self.areaBtn?.setTitle(_temp_selectAreaModel?.name, for: .normal) | ||
| 113 | + self.areaBtn?.setTitleColor(HexColor("#333333"), for: .normal) | ||
| 114 | + }else { | ||
| 115 | + self.areaBtn?.setTitle("区县", for: .normal) | ||
| 116 | + if (self.displayLevel == 3) { | ||
| 117 | + self.areaBtn?.setTitleColor(HexColor("#333333"), for: .normal) | ||
| 118 | + }else { | ||
| 119 | + self.areaBtn?.setTitleColor(HexColor("#999999"), for: .normal) | ||
| 120 | + } | ||
| 121 | + } | ||
| 122 | + } | ||
| 123 | + } | ||
| 124 | + | ||
| 125 | + | ||
| 126 | + // MARK: - 显示/隐藏 | ||
| 127 | + func display(){ | ||
| 128 | + self.view.isUserInteractionEnabled = true | ||
| 129 | + UIView.animate(withDuration: 0.2) { | ||
| 130 | + self.shadowView?.alpha = 1 | ||
| 131 | + self.contentView?.y = self.view.height - adapt_length(length: 400) | ||
| 132 | + } | ||
| 133 | + } | ||
| 134 | + func hide(){ | ||
| 135 | + UIView.animate(withDuration: 0.2) { | ||
| 136 | + self.shadowView?.alpha = 0 | ||
| 137 | + self.contentView?.y = self.view.height | ||
| 138 | + }completion: { finished in | ||
| 139 | + self.view.isUserInteractionEnabled = false | ||
| 140 | + } | ||
| 141 | + } | ||
| 142 | + | ||
| 143 | + // MARK: - 数据请求 | ||
| 144 | + /** | ||
| 145 | + 数据请求 | ||
| 146 | + | ||
| 147 | + @param pid 父级id | ||
| 148 | + @param level 第几级 | ||
| 149 | + */ | ||
| 150 | + func postDataWithPid(pid:String,level:NSInteger,resultBlock: @escaping downSlideResultBlock){ | ||
| 151 | + showLoading(message: "") | ||
| 152 | + CNLiveVitaeViewModel.getCityListWithId(id: pid) { result, status in | ||
| 153 | + hiddenLoading() | ||
| 154 | + if status == .success{ | ||
| 155 | + self.displayLevel = level | ||
| 156 | + let model = result as! CNLiveAddrAreaListModel | ||
| 157 | + if level == 1{ | ||
| 158 | + self.provinceDataArr = model.list | ||
| 159 | + self.temp_selectCityModel = nil | ||
| 160 | + self.temp_selectAreaModel = nil | ||
| 161 | + self.cityDataArr = nil | ||
| 162 | + self.areaDataArr = nil | ||
| 163 | + if self.provinceId.count > 0 && self.provinceId != "0"{ | ||
| 164 | + for (_,obj) in self.provinceDataArr!.enumerated(){ | ||
| 165 | + if obj.id == self.provinceId{ | ||
| 166 | + self.temp_selectProvinceModel = obj | ||
| 167 | + break | ||
| 168 | + } | ||
| 169 | + } | ||
| 170 | + | ||
| 171 | + } | ||
| 172 | + }else if level == 2{ | ||
| 173 | + self.cityDataArr = model.list | ||
| 174 | + self.temp_selectCityModel = nil | ||
| 175 | + self.temp_selectAreaModel = nil | ||
| 176 | + self.areaDataArr = nil | ||
| 177 | + if self.cityId.count > 0 && self.cityId != "0"{ | ||
| 178 | + for (_,obj) in self.cityDataArr!.enumerated(){ | ||
| 179 | + if obj.id == self.cityId{ | ||
| 180 | + self.temp_selectCityModel = obj | ||
| 181 | + break | ||
| 182 | + } | ||
| 183 | + } | ||
| 184 | + }else{ | ||
| 185 | + self.cityBtn?.setTitle("城市", for: .normal) | ||
| 186 | + } | ||
| 187 | + }else if level == 3{ | ||
| 188 | + self.areaDataArr = model.list | ||
| 189 | + self.temp_selectAreaModel = nil | ||
| 190 | + if self.areaId.count > 0 && self.areaId != "0"{ | ||
| 191 | + for (_,obj) in self.areaDataArr!.enumerated(){ | ||
| 192 | + if obj.id == self.areaId{ | ||
| 193 | + self.temp_selectAreaModel = obj | ||
| 194 | + break | ||
| 195 | + } | ||
| 196 | + } | ||
| 197 | + }else{ | ||
| 198 | + self.areaBtn?.setTitle("区县", for: .normal) | ||
| 199 | + } | ||
| 200 | + } | ||
| 201 | + self.tableView.reloadData() | ||
| 202 | + self.tableView.setContentOffset(CGPointZero, animated: true) | ||
| 203 | + resultBlock(true, .success) | ||
| 204 | + } | ||
| 205 | + | ||
| 206 | + } | ||
| 207 | + } | ||
| 208 | + | ||
| 209 | + // MARK: - viewDidLoad | ||
| 210 | + override func viewDidLoad() { | ||
| 211 | + super.viewDidLoad() | ||
| 212 | + self.view.backgroundColor = .clear | ||
| 213 | + self.topNavView.removeFromSuperview() | ||
| 214 | + self.initUI() | ||
| 215 | + if self.provinceId == "0" || self.provinceId.count == 0{ | ||
| 216 | + self.cityId = "0" | ||
| 217 | + self.areaId = "0" | ||
| 218 | + }else if self.cityId == "0" || self.cityId.count == 0{ | ||
| 219 | + self.areaId = "0" | ||
| 220 | + } | ||
| 221 | + self.postDataWithPid(pid: "0", level: 1) { result, status in | ||
| 222 | + if status == .success{ | ||
| 223 | + if self.cityId.count > 0 && self.cityId != "0"{ | ||
| 224 | + self.postDataWithPid(pid: self.provinceId, level: 2){ result, status in | ||
| 225 | + if self.areaId.count > 0 && self.areaId != "0"{ | ||
| 226 | + self.postDataWithPid(pid: self.cityId, level: 3) { result, status in | ||
| 227 | + } | ||
| 228 | + } | ||
| 229 | + } | ||
| 230 | + | ||
| 231 | + } | ||
| 232 | + } | ||
| 233 | + } | ||
| 234 | + | ||
| 235 | + } | ||
| 236 | + | ||
| 237 | + func scrollViewWithProvinceId(provinceId:String,cityId:String,areaId:String){ | ||
| 238 | + if provinceId == "0"{ | ||
| 239 | + self.postDataWithPid(pid: provinceId, level: 1){ result, status in | ||
| 240 | + if areaId.count > 0 && areaId != "0"{ | ||
| 241 | + self.postDataWithPid(pid: cityId, level: 2) { result, status in | ||
| 242 | + } | ||
| 243 | + } | ||
| 244 | + } | ||
| 245 | + }else{ | ||
| 246 | + self.postDataWithPid(pid: provinceId, level: 2){ result, status in | ||
| 247 | + if areaId.count > 0 && areaId != "0"{ | ||
| 248 | + self.postDataWithPid(pid: cityId, level: 3) { result, status in | ||
| 249 | + } | ||
| 250 | + } | ||
| 251 | + } | ||
| 252 | + } | ||
| 253 | + } | ||
| 254 | + | ||
| 255 | + // MARK: - initUI | ||
| 256 | + func initUI(){ | ||
| 257 | + self.shadowView = UIView(frame: self.view.bounds) | ||
| 258 | + self.shadowView?.backgroundColor = UIColor(white: 0, alpha: 0.26) | ||
| 259 | + self.shadowView?.alpha = 0 | ||
| 260 | + self.view.addSubview(self.shadowView!) | ||
| 261 | + let shadowViewTap = UITapGestureRecognizer(target: self, action: #selector(shadowViewTap)) | ||
| 262 | + self.shadowView?.addGestureRecognizer(shadowViewTap) | ||
| 263 | + self.contentView = UIView(frame: CGRectMake(0, self.view.height, self.view.width, adapt_length(length: 400))) | ||
| 264 | + self.contentView?.backgroundColor = .white | ||
| 265 | + self.view.addSubview(self.contentView!) | ||
| 266 | + | ||
| 267 | + self.line = UIImageView(frame: CGRect(x: 0, y: adapt_length(length: 49)-DS_RRV_ONE_PIXEL, width: self.view.width, height: DS_RRV_ONE_PIXEL)) | ||
| 268 | + self.line?.backgroundColor = HexColor("#EBE9EA") | ||
| 269 | + self.contentView?.addSubview(self.line!) | ||
| 270 | + | ||
| 271 | + self.provinceBtn = UIButton(type: .custom) | ||
| 272 | + self.provinceBtn?.frame = CGRect(x: adapt_length(length: 5), y: 0, width: adapt_length(length: 59), height: adapt_length(length: 49)) | ||
| 273 | + self.provinceBtn?.setTitle("请选择", for: .normal) | ||
| 274 | + self.provinceBtn?.setTitleColor(HexColor("#333333"), for: .normal) | ||
| 275 | + self.provinceBtn?.clipsToBounds = true | ||
| 276 | + self.provinceBtn?.titleLabel?.font = Font_13 | ||
| 277 | + self.provinceBtn?.titleLabel?.lineBreakMode = .byTruncatingTail | ||
| 278 | + self.provinceBtn?.addTarget(self, action: #selector(provinceBtnClick), for: .touchUpInside) | ||
| 279 | + self.contentView?.addSubview(self.provinceBtn!) | ||
| 280 | + | ||
| 281 | + self.cityBtn = UIButton(type: .custom) | ||
| 282 | + self.cityBtn?.frame = CGRect(x: self.provinceBtn!.right+adapt_length(length: 5), y: 0, width: adapt_length(length: 59), height: adapt_length(length: 49)) | ||
| 283 | + self.cityBtn?.setTitle("城市", for: .normal) | ||
| 284 | + self.cityBtn?.setTitleColor(HexColor("#999999"), for: .normal) | ||
| 285 | + self.cityBtn?.clipsToBounds = true | ||
| 286 | + self.cityBtn?.titleLabel?.font = Font_13 | ||
| 287 | + self.cityBtn?.titleLabel?.lineBreakMode = .byTruncatingTail | ||
| 288 | + self.cityBtn?.addTarget(self, action: #selector(cityBtnClick), for: .touchUpInside) | ||
| 289 | + self.contentView?.addSubview(self.cityBtn!) | ||
| 290 | + | ||
| 291 | + self.areaBtn = UIButton(type: .custom) | ||
| 292 | + self.areaBtn?.frame = CGRect(x: self.cityBtn!.right+adapt_length(length: 5), y: 0, width: adapt_length(length: 59), height: adapt_length(length: 49)) | ||
| 293 | + self.areaBtn?.setTitle("区县", for: .normal) | ||
| 294 | + self.areaBtn?.setTitleColor(HexColor("#999999"), for: .normal) | ||
| 295 | + self.areaBtn?.clipsToBounds = true | ||
| 296 | + self.areaBtn?.titleLabel?.font = Font_13 | ||
| 297 | + self.areaBtn?.titleLabel?.lineBreakMode = .byTruncatingTail | ||
| 298 | + self.areaBtn?.addTarget(self, action: #selector(areaBtnClick), for: .touchUpInside) | ||
| 299 | + self.contentView?.addSubview(self.areaBtn!) | ||
| 300 | + | ||
| 301 | + self.selectImageView = UIImageView(frame: CGRect(x: 0, y: self.line!.bottom-2, width: adapt_length(length: 39), height: 2)) | ||
| 302 | + self.selectImageView?.backgroundColor = HexColor("#1961FE") | ||
| 303 | + self.contentView?.addSubview(self.selectImageView!) | ||
| 304 | + self.selectImageView!.centerX = self.provinceBtn!.centerX | ||
| 305 | + | ||
| 306 | + let confirmBtn = UIButton(type: .custom) | ||
| 307 | + confirmBtn.frame = CGRect(x: self.contentView!.width-adapt_length(length: 49), y: 0, width: adapt_length(length: 49), height: adapt_length(length: 49)) | ||
| 308 | + confirmBtn.setTitle("确定", for: .normal) | ||
| 309 | + confirmBtn.setTitleColor(HexColor("#333333"), for: .normal) | ||
| 310 | + confirmBtn.clipsToBounds = true | ||
| 311 | + confirmBtn.titleLabel?.font = Font_13 | ||
| 312 | + confirmBtn.addTarget(self, action: #selector(confirmBtnClick), for: .touchUpInside) | ||
| 313 | + self.contentView?.addSubview(confirmBtn) | ||
| 314 | + self.contentView?.addSubview(self.tableView) | ||
| 315 | + | ||
| 316 | + } | ||
| 317 | + | ||
| 318 | + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
| 319 | + if self.displayLevel == 1{ | ||
| 320 | + return self.provinceDataArr!.count | ||
| 321 | + }else if self.displayLevel == 2{ | ||
| 322 | + return self.cityDataArr!.count | ||
| 323 | + }else if self.displayLevel == 3{ | ||
| 324 | + return self.areaDataArr!.count | ||
| 325 | + }else{ | ||
| 326 | + return 0 | ||
| 327 | + } | ||
| 328 | + } | ||
| 329 | + | ||
| 330 | + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
| 331 | + let identifier = "CNLiveAddrSelectAreaTableViewCellID" | ||
| 332 | + var cell = tableView.dequeueReusableCell(withIdentifier: identifier) | ||
| 333 | + if cell == nil{ | ||
| 334 | + cell = UITableViewCell(style: .default, reuseIdentifier: identifier) | ||
| 335 | + cell?.selectionStyle = .none | ||
| 336 | + | ||
| 337 | + let titleLab = UILabel(frame: CGRect(x: adapt_length(length: 15), y: 0, width: self.view.width-adapt_length(length: 15)*2, height: adapt_length(length: 40))) | ||
| 338 | + titleLab.font = Font_14 | ||
| 339 | + titleLab.textColor = HexColor("#666666") | ||
| 340 | + titleLab.lineBreakMode = .byTruncatingTail | ||
| 341 | + titleLab.tag = 1 | ||
| 342 | + cell?.addSubview(titleLab) | ||
| 343 | + } | ||
| 344 | + let titleLab = cell?.viewWithTag(1) as! UILabel | ||
| 345 | + if self.displayLevel == 1{ | ||
| 346 | + let model = self.provinceDataArr![indexPath.row] | ||
| 347 | + titleLab.text = model.name | ||
| 348 | + if model.id == self.temp_selectProvinceModel?.id{ | ||
| 349 | + titleLab.textColor = HexColor("#1961FE") | ||
| 350 | + }else{ | ||
| 351 | + titleLab.textColor = HexColor("#666666") | ||
| 352 | + } | ||
| 353 | + }else if self.displayLevel == 2{ | ||
| 354 | + let model = self.cityDataArr![indexPath.row] | ||
| 355 | + titleLab.text = model.name | ||
| 356 | + if model.id == self.temp_selectCityModel?.id{ | ||
| 357 | + titleLab.textColor = HexColor("#1961FE") | ||
| 358 | + }else{ | ||
| 359 | + titleLab.textColor = HexColor("#666666") | ||
| 360 | + } | ||
| 361 | + }else if self.displayLevel == 3{ | ||
| 362 | + let model = self.areaDataArr![indexPath.row] | ||
| 363 | + titleLab.text = model.name | ||
| 364 | + if model.id == self.temp_selectAreaModel?.id{ | ||
| 365 | + titleLab.textColor = HexColor("#1961FE") | ||
| 366 | + }else{ | ||
| 367 | + titleLab.textColor = HexColor("#666666") | ||
| 368 | + } | ||
| 369 | + }else{ | ||
| 370 | + titleLab.text = "" | ||
| 371 | + } | ||
| 372 | + return cell! | ||
| 373 | + } | ||
| 374 | + | ||
| 375 | + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | ||
| 376 | + if self.displayLevel == 1{ | ||
| 377 | + let model = self.provinceDataArr![indexPath.row] | ||
| 378 | + self.postDataWithPid(pid: model.id, level: 2){result, status in | ||
| 379 | + self.temp_selectProvinceModel = model | ||
| 380 | + self.temp_selectCityModel = nil | ||
| 381 | + self.temp_selectAreaModel = nil | ||
| 382 | + } | ||
| 383 | + }else if self.displayLevel == 2{ | ||
| 384 | + let model = self.cityDataArr![indexPath.row] | ||
| 385 | + self.postDataWithPid(pid: model.id, level: 3){result, status in | ||
| 386 | + self.temp_selectCityModel = model | ||
| 387 | + self.temp_selectAreaModel = nil | ||
| 388 | + } | ||
| 389 | + }else if self.displayLevel == 3{ | ||
| 390 | + let model = self.areaDataArr![indexPath.row] | ||
| 391 | + self.temp_selectAreaModel = model | ||
| 392 | + self.tableView.reloadData() | ||
| 393 | + } | ||
| 394 | + } | ||
| 395 | + | ||
| 396 | + // MARK: - 触发事件 | ||
| 397 | + @objc func shadowViewTap(){ | ||
| 398 | + self.hide() | ||
| 399 | + } | ||
| 400 | + | ||
| 401 | + @objc func confirmBtnClick(){ | ||
| 402 | + if (self.temp_selectProvinceModel == nil) || (self.temp_selectCityModel == nil) || (self.temp_selectAreaModel == nil){ | ||
| 403 | + showMessage(message: "省市区未选择完成") | ||
| 404 | + return | ||
| 405 | + } | ||
| 406 | + self.provinceId = self.temp_selectProvinceModel!.id | ||
| 407 | + self.province = self.temp_selectProvinceModel!.name | ||
| 408 | + self.cityId = self.temp_selectCityModel!.id | ||
| 409 | + self.city = self.temp_selectCityModel!.name | ||
| 410 | + self.areaId = self.temp_selectAreaModel!.id | ||
| 411 | + self.area = self.temp_selectAreaModel!.name | ||
| 412 | + self.finishSelectAreaCallBack?() | ||
| 413 | + self.hide() | ||
| 414 | + } | ||
| 415 | + | ||
| 416 | + @objc func provinceBtnClick(){ | ||
| 417 | + self.displayLevel = 1 | ||
| 418 | + self.tableView.reloadData() | ||
| 419 | + self.tableView.setContentOffset(CGPointZero, animated: true) | ||
| 420 | + if self.temp_selectCityModel != nil{ | ||
| 421 | + self.cityBtn?.setTitleColor(HexColor("#333333"), for: .normal) | ||
| 422 | + if self.temp_selectAreaModel != nil{ | ||
| 423 | + self.areaBtn?.setTitleColor(HexColor("#333333"), for: .normal) | ||
| 424 | + }else{ | ||
| 425 | + self.areaBtn?.setTitleColor(HexColor("#999999"), for: .normal) | ||
| 426 | + } | ||
| 427 | + }else{ | ||
| 428 | + self.cityBtn?.setTitleColor(HexColor("#999999"), for: .normal) | ||
| 429 | + self.areaBtn?.setTitleColor(HexColor("#999999"), for: .normal) | ||
| 430 | + } | ||
| 431 | + } | ||
| 432 | + | ||
| 433 | + @objc func cityBtnClick(){ | ||
| 434 | + if self.temp_selectProvinceModel == nil{ | ||
| 435 | + return | ||
| 436 | + } | ||
| 437 | + self.displayLevel = 2 | ||
| 438 | + self.tableView.reloadData() | ||
| 439 | + self.tableView.setContentOffset(CGPointZero, animated: true) | ||
| 440 | + if self.temp_selectAreaModel != nil{ | ||
| 441 | + self.areaBtn?.setTitleColor(HexColor("#333333"), for: .normal) | ||
| 442 | + }else{ | ||
| 443 | + self.areaBtn?.setTitleColor(HexColor("#999999"), for: .normal) | ||
| 444 | + } | ||
| 445 | + } | ||
| 446 | + @objc func areaBtnClick(){ | ||
| 447 | + if self.temp_selectCityModel == nil{ | ||
| 448 | + return | ||
| 449 | + } | ||
| 450 | + self.displayLevel = 3 | ||
| 451 | + self.tableView.reloadData() | ||
| 452 | + self.tableView.setContentOffset(CGPointZero, animated: true) | ||
| 453 | + } | ||
| 454 | + | ||
| 455 | +} | ||
| 456 | + |
metaCode/Classes/Main/HomePage/Controller/DigitalAuth/CNLiveFaceAuthController.swift
| @@ -15,6 +15,7 @@ import Vision | @@ -15,6 +15,7 @@ import Vision | ||
| 15 | class CNLiveFaceAuthController:CNLiveBaseViewController{ | 15 | class CNLiveFaceAuthController:CNLiveBaseViewController{ |
| 16 | 16 | ||
| 17 | var channelId:String = "0" | 17 | var channelId:String = "0" |
| 18 | + var isResume:Bool = false//是否跳转到数字简历页面 | ||
| 18 | 19 | ||
| 19 | lazy var previewView :CNLiveAuthPreviewView = { | 20 | lazy var previewView :CNLiveAuthPreviewView = { |
| 20 | let previewView = CNLiveAuthPreviewView(frame: CGRect(x: 0, y: KNavigationHeight, width: KSreenWidth, height: KSreenHeight-KNavigationHeight)) | 21 | let previewView = CNLiveAuthPreviewView(frame: CGRect(x: 0, y: KNavigationHeight, width: KSreenWidth, height: KSreenHeight-KNavigationHeight)) |
| @@ -379,11 +380,132 @@ class CNLiveFaceAuthController:CNLiveBaseViewController{ | @@ -379,11 +380,132 @@ class CNLiveFaceAuthController:CNLiveBaseViewController{ | ||
| 379 | userInfo.userMsgUsers = res | 380 | userInfo.userMsgUsers = res |
| 380 | userInfo.currentUser = res.verifyUsers.first | 381 | userInfo.currentUser = res.verifyUsers.first |
| 381 | UserInfoManager.cacheUserInfo(userInfo: userInfo) | 382 | UserInfoManager.cacheUserInfo(userInfo: userInfo) |
| 383 | + if res.verifyUsers.count > 0{ | ||
| 384 | + if self.isResume == true{ | ||
| 385 | + //进入数字简历页面 | ||
| 386 | + let is_agree = UserDefaults.standard.bool(forKey: "is_agree_shuzijianlixieyi") | ||
| 387 | + if is_agree{ | ||
| 388 | + //跳转数字简历页面 | ||
| 389 | + let vc = CNLiveDigitalResumeController() | ||
| 390 | + self.navigationController?.pushViewController(vc, animated: true) | ||
| 391 | + }else{ | ||
| 392 | + self.showXieyiAlert() | ||
| 393 | + } | ||
| 394 | + }else{ | ||
| 395 | + //跳转到身份认证页面 | ||
| 396 | + let listModel = StandListModel() | ||
| 397 | + listModel.id = Int(self.channelId) ?? 0 | ||
| 398 | + self.navigationController?.pushViewController(CNLiveMineInputViewController.init(listModel: listModel, authType: .person), animated: pushAnimated) | ||
| 399 | + } | ||
| 400 | + }else{ | ||
| 401 | + //实名认证失败 | ||
| 402 | + showMessage(message: "实名认证失败") | ||
| 403 | + self.navigationController?.popViewController(animated: true) | ||
| 404 | + } | ||
| 382 | } | 405 | } |
| 383 | } | 406 | } |
| 384 | } | 407 | } |
| 385 | 408 | ||
| 386 | } | 409 | } |
| 410 | + | ||
| 411 | + | ||
| 412 | + | ||
| 413 | + // MARK: - 数字简历协议 | ||
| 414 | + let delegate = UIApplication.shared.delegate as! AppDelegate | ||
| 415 | + /// 未认证-inputType17时弹窗背景图 | ||
| 416 | + lazy var alertBgImgView:UIImageView = { | ||
| 417 | + let alertBgImgView:UIImageView = UIImageView() | ||
| 418 | + alertBgImgView.tag = 20001 | ||
| 419 | + alertBgImgView.isUserInteractionEnabled = true | ||
| 420 | + alertBgImgView.contentMode = .scaleAspectFit | ||
| 421 | + alertBgImgView.backgroundColor = .white | ||
| 422 | + return alertBgImgView | ||
| 423 | + }() | ||
| 424 | + lazy var agreeBtn: UIButton = { | ||
| 425 | + let nextBtn = UIButton(type: .custom) | ||
| 426 | + nextBtn.width = 285 | ||
| 427 | + nextBtn.height = 44 | ||
| 428 | + nextBtn.setTitle("同意协议 领取一下", for: .normal) | ||
| 429 | + nextBtn.setTitleColor(.white, for: .normal) | ||
| 430 | + nextBtn.layer.cornerRadius = 22 | ||
| 431 | + nextBtn.clipsToBounds = true | ||
| 432 | + nextBtn.addTarget(self, action: #selector(agreeBtnAction), for: .touchUpInside) | ||
| 433 | + nextBtn.backgroundColor = HexColor("#8E8BFB") | ||
| 434 | + // fillCode | ||
| 435 | + let bgLayer1 = CAGradientLayer() | ||
| 436 | + bgLayer1.colors = [UIColor(red: 0.1, green: 0.38, blue: 1, alpha: 1).cgColor, UIColor(red: 0.56, green: 0.55, blue: 0.98, alpha: 1).cgColor] | ||
| 437 | + bgLayer1.locations = [0, 1] | ||
| 438 | + bgLayer1.frame = nextBtn.bounds | ||
| 439 | + bgLayer1.startPoint = CGPoint(x: 0.5, y: 1) | ||
| 440 | + bgLayer1.endPoint = CGPoint(x: 0, y: 0) | ||
| 441 | + nextBtn.layer.addSublayer(bgLayer1) | ||
| 442 | + return nextBtn | ||
| 443 | + }() | ||
| 444 | + lazy var jianlixieyiLabel: UILabel = { | ||
| 445 | + let label = UILabel() | ||
| 446 | + let attrString = NSMutableAttributedString(string: "查看《元码数字简历服务协议》") | ||
| 447 | + label.frame = CGRect(x: 0, y: 0, width: KSreenWidth, height: 20) | ||
| 448 | + let attr1: [NSAttributedString.Key : Any] = [.font: Font_14,.foregroundColor: HexColor("#20252A")!] | ||
| 449 | + attrString.addAttributes(attr1, range: NSRange(location: 0, length: 2)) | ||
| 450 | + let attr: [NSAttributedString.Key : Any] = [.font: Font_14,.foregroundColor: HexColor("#1961FE")!] | ||
| 451 | + attrString.addAttributes(attr, range: NSRange(location: 2, length: attrString.length-2)) | ||
| 452 | + label.attributedText = attrString | ||
| 453 | + label.textAlignment = .center | ||
| 454 | + label.isUserInteractionEnabled = true | ||
| 455 | + label.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(jianlixieyiAction))) | ||
| 456 | + return label | ||
| 457 | + }() | ||
| 458 | + //弹出数字简历协议alert | ||
| 459 | + func showXieyiAlert(){ | ||
| 460 | + delegate.window?.addSubview(self.alertBgImgView) | ||
| 461 | + alertBgImgView.snp.makeConstraints { make in | ||
| 462 | + make.centerX.equalToSuperview() | ||
| 463 | + make.centerY.equalToSuperview() | ||
| 464 | + make.width.equalToSuperview() | ||
| 465 | + make.height.equalToSuperview() | ||
| 466 | + } | ||
| 467 | + self.alertBgImgView.image = UIImage(named: "mine_jianli_xieyiBg") | ||
| 468 | + alertBgImgView.addSubview(self.agreeBtn) | ||
| 469 | + self.agreeBtn.snp.makeConstraints { make in | ||
| 470 | + make.bottom.equalToSuperview().offset(-50) | ||
| 471 | + make.width.equalTo(285) | ||
| 472 | + make.centerX.equalToSuperview() | ||
| 473 | + make.height.equalTo(44) | ||
| 474 | + } | ||
| 475 | + alertBgImgView.addSubview(self.jianlixieyiLabel) | ||
| 476 | + self.jianlixieyiLabel.snp.makeConstraints { make in | ||
| 477 | + make.bottom.equalTo(self.agreeBtn.snp.top).offset(-10) | ||
| 478 | + make.left.right.equalToSuperview() | ||
| 479 | + make.height.equalTo(20) | ||
| 480 | + } | ||
| 481 | + } | ||
| 482 | + @objc func jianlixieyiAction(){ | ||
| 483 | + //查看数字简历协议 | ||
| 484 | + let webVC = CNWebViewController() | ||
| 485 | + webVC.url = URL(string: "https://wjj.ys1.cnliveimg.com/term/ymRlsbyhxxcjxy.html") | ||
| 486 | + self.navigationController?.pushViewController(webVC, animated: true) | ||
| 487 | + | ||
| 488 | + delegate.window?.subviews.forEach({ view in | ||
| 489 | + if view.tag >= 20000{ | ||
| 490 | + view.isHidden = true | ||
| 491 | + } | ||
| 492 | + }) | ||
| 493 | + } | ||
| 494 | + @objc func agreeBtnAction(){ | ||
| 495 | + //同意协议按钮 | ||
| 496 | + delegate.window?.subviews.forEach({ view in | ||
| 497 | + if view.tag >= 20000{ | ||
| 498 | + view.removeFromSuperview() | ||
| 499 | + } | ||
| 500 | + }) | ||
| 501 | + //本地存储已同意 | ||
| 502 | + UserDefaults.standard.set(true,forKey: "is_agree_shuzijianlixieyi") | ||
| 503 | + | ||
| 504 | + //跳转数字简历页面 | ||
| 505 | + let vc = CNLiveDigitalResumeController() | ||
| 506 | + self.navigationController?.pushViewController(vc, animated: true) | ||
| 507 | + } | ||
| 508 | + | ||
| 387 | } | 509 | } |
| 388 | 510 | ||
| 389 | // Video Sessions | 511 | // Video Sessions |
| @@ -670,10 +792,7 @@ extension CNLiveFaceAuthController { | @@ -670,10 +792,7 @@ extension CNLiveFaceAuthController { | ||
| 670 | if status == .success{ | 792 | if status == .success{ |
| 671 | //保存最新实名身份数据 | 793 | //保存最新实名身份数据 |
| 672 | self.saveRealData() | 794 | self.saveRealData() |
| 673 | - //跳转到身份认证页面 | ||
| 674 | - let listModel = StandListModel() | ||
| 675 | - listModel.id = Int(self.channelId) ?? 0 | ||
| 676 | - self.navigationController?.pushViewController(CNLiveMineInputViewController.init(listModel: listModel, authType: .person), animated: pushAnimated) | 795 | + |
| 677 | }else{ | 796 | }else{ |
| 678 | //提示认证失败 | 797 | //提示认证失败 |
| 679 | CNLiveAuthTool.shared.showAuthFailAlert() | 798 | CNLiveAuthTool.shared.showAuthFailAlert() |
| @@ -745,6 +864,7 @@ extension CNLiveFaceAuthController { | @@ -745,6 +864,7 @@ extension CNLiveFaceAuthController { | ||
| 745 | 864 | ||
| 746 | } | 865 | } |
| 747 | } | 866 | } |
| 867 | + | ||
| 748 | } | 868 | } |
| 749 | 869 | ||
| 750 | // Camera Settings & Orientation | 870 | // Camera Settings & Orientation |
| @@ -825,6 +945,8 @@ extension CNLiveFaceAuthController: AVCaptureVideoDataOutputSampleBufferDelegate | @@ -825,6 +945,8 @@ extension CNLiveFaceAuthController: AVCaptureVideoDataOutputSampleBufferDelegate | ||
| 825 | print(error) | 945 | print(error) |
| 826 | } | 946 | } |
| 827 | } | 947 | } |
| 948 | + | ||
| 949 | + | ||
| 828 | } | 950 | } |
| 829 | 951 | ||
| 830 | 952 |
metaCode/Classes/Main/HomePage/Controller/DigitalAuth/CNLiveRealNameAuthController.swift
| @@ -214,24 +214,14 @@ class CNLiveRealNameAuthController:CNLiveBaseViewController,UITableViewDataSourc | @@ -214,24 +214,14 @@ class CNLiveRealNameAuthController:CNLiveBaseViewController,UITableViewDataSourc | ||
| 214 | showMessage(message: "请输入证件号码") | 214 | showMessage(message: "请输入证件号码") |
| 215 | return | 215 | return |
| 216 | } | 216 | } |
| 217 | - if self.isResume == true{ | ||
| 218 | - //进入数字简历页面 | ||
| 219 | - let is_agree = UserDefaults.standard.bool(forKey: "is_agree_shuzijianlixieyi") | ||
| 220 | - if is_agree{ | ||
| 221 | - //跳转数字简历页面 | ||
| 222 | - let vc = CNLiveDigitalResumeController() | ||
| 223 | - self.navigationController?.pushViewController(vc, animated: true) | ||
| 224 | - }else{ | ||
| 225 | - self.showXieyiAlert() | ||
| 226 | - } | ||
| 227 | - }else{ | ||
| 228 | - //进入人脸识别页面 | ||
| 229 | - let vc = CNLiveFaceAuthController() | ||
| 230 | - vc.realName = self.nameTextStr | ||
| 231 | - vc.realNumber = self.numberTextStr | ||
| 232 | - vc.channelId = self.channelId | ||
| 233 | - self.navigationController?.pushViewController(vc, animated: true) | ||
| 234 | - } | 217 | + //进入人脸识别页面 |
| 218 | + let vc = CNLiveFaceAuthController() | ||
| 219 | + vc.realName = self.nameTextStr | ||
| 220 | + vc.realNumber = self.numberTextStr | ||
| 221 | + vc.channelId = self.channelId | ||
| 222 | + vc.isResume = self.isResume | ||
| 223 | + self.navigationController?.pushViewController(vc, animated: true) | ||
| 224 | + | ||
| 235 | } | 225 | } |
| 236 | 226 | ||
| 237 | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | 227 | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { |
| @@ -267,103 +257,5 @@ class CNLiveRealNameAuthController:CNLiveBaseViewController,UITableViewDataSourc | @@ -267,103 +257,5 @@ class CNLiveRealNameAuthController:CNLiveBaseViewController,UITableViewDataSourc | ||
| 267 | func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | 257 | func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { |
| 268 | return 122 | 258 | return 122 |
| 269 | } | 259 | } |
| 270 | - | ||
| 271 | - | ||
| 272 | - | ||
| 273 | - // MARK: - 数字简历协议 | ||
| 274 | - let delegate = UIApplication.shared.delegate as! AppDelegate | ||
| 275 | - /// 未认证-inputType17时弹窗背景图 | ||
| 276 | - lazy var alertBgImgView:UIImageView = { | ||
| 277 | - let alertBgImgView:UIImageView = UIImageView() | ||
| 278 | - alertBgImgView.tag = 20001 | ||
| 279 | - alertBgImgView.isUserInteractionEnabled = true | ||
| 280 | - alertBgImgView.contentMode = .scaleAspectFit | ||
| 281 | - alertBgImgView.backgroundColor = .white | ||
| 282 | - return alertBgImgView | ||
| 283 | - }() | ||
| 284 | - lazy var agreeBtn: UIButton = { | ||
| 285 | - let nextBtn = UIButton(type: .custom) | ||
| 286 | - nextBtn.width = 285 | ||
| 287 | - nextBtn.height = 44 | ||
| 288 | - nextBtn.setTitle("同意协议 领取一下", for: .normal) | ||
| 289 | - nextBtn.setTitleColor(.white, for: .normal) | ||
| 290 | - nextBtn.layer.cornerRadius = 22 | ||
| 291 | - nextBtn.clipsToBounds = true | ||
| 292 | - nextBtn.addTarget(self, action: #selector(agreeBtnAction), for: .touchUpInside) | ||
| 293 | - nextBtn.backgroundColor = HexColor("#8E8BFB") | ||
| 294 | - // fillCode | ||
| 295 | - let bgLayer1 = CAGradientLayer() | ||
| 296 | - bgLayer1.colors = [UIColor(red: 0.1, green: 0.38, blue: 1, alpha: 1).cgColor, UIColor(red: 0.56, green: 0.55, blue: 0.98, alpha: 1).cgColor] | ||
| 297 | - bgLayer1.locations = [0, 1] | ||
| 298 | - bgLayer1.frame = nextBtn.bounds | ||
| 299 | - bgLayer1.startPoint = CGPoint(x: 0.5, y: 1) | ||
| 300 | - bgLayer1.endPoint = CGPoint(x: 0, y: 0) | ||
| 301 | - nextBtn.layer.addSublayer(bgLayer1) | ||
| 302 | - return nextBtn | ||
| 303 | - }() | ||
| 304 | - lazy var xieyiLabel: UILabel = { | ||
| 305 | - let label = UILabel() | ||
| 306 | - let attrString = NSMutableAttributedString(string: "查看《元码数字简历服务协议》") | ||
| 307 | - label.frame = CGRect(x: 0, y: 0, width: KSreenWidth, height: 20) | ||
| 308 | - let attr1: [NSAttributedString.Key : Any] = [.font: Font_14,.foregroundColor: HexColor("#20252A")!] | ||
| 309 | - attrString.addAttributes(attr1, range: NSRange(location: 0, length: 2)) | ||
| 310 | - let attr: [NSAttributedString.Key : Any] = [.font: Font_14,.foregroundColor: HexColor("#1961FE")!] | ||
| 311 | - attrString.addAttributes(attr, range: NSRange(location: 2, length: attrString.length-2)) | ||
| 312 | - label.attributedText = attrString | ||
| 313 | - label.textAlignment = .center | ||
| 314 | - label.isUserInteractionEnabled = true | ||
| 315 | - label.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(xieyiAction))) | ||
| 316 | - return label | ||
| 317 | - }() | ||
| 318 | - //弹出数字简历协议alert | ||
| 319 | - func showXieyiAlert(){ | ||
| 320 | - delegate.window?.addSubview(self.alertBgImgView) | ||
| 321 | - alertBgImgView.snp.makeConstraints { make in | ||
| 322 | - make.centerX.equalToSuperview() | ||
| 323 | - make.centerY.equalToSuperview() | ||
| 324 | - make.width.equalToSuperview() | ||
| 325 | - make.height.equalToSuperview() | ||
| 326 | - } | ||
| 327 | - self.alertBgImgView.image = UIImage(named: "mine_jianli_xieyiBg") | ||
| 328 | - alertBgImgView.addSubview(self.agreeBtn) | ||
| 329 | - self.agreeBtn.snp.makeConstraints { make in | ||
| 330 | - make.bottom.equalToSuperview().offset(-50) | ||
| 331 | - make.width.equalTo(285) | ||
| 332 | - make.centerX.equalToSuperview() | ||
| 333 | - make.height.equalTo(44) | ||
| 334 | - } | ||
| 335 | - alertBgImgView.addSubview(self.xieyiLabel) | ||
| 336 | - self.xieyiLabel.snp.makeConstraints { make in | ||
| 337 | - make.bottom.equalTo(self.agreeBtn.snp.top).offset(-10) | ||
| 338 | - make.left.right.equalToSuperview() | ||
| 339 | - make.height.equalTo(20) | ||
| 340 | - } | ||
| 341 | - } | ||
| 342 | - @objc func xieyiAction(){ | ||
| 343 | - //查看数字简历协议 | ||
| 344 | - let webVC = CNWebViewController() | ||
| 345 | - webVC.url = URL(string: "https://wjj.ys1.cnliveimg.com/term/ymRlsbyhxxcjxy.html") | ||
| 346 | - self.navigationController?.pushViewController(webVC, animated: true) | ||
| 347 | - | ||
| 348 | - delegate.window?.subviews.forEach({ view in | ||
| 349 | - if view.tag >= 20000{ | ||
| 350 | - view.isHidden = true | ||
| 351 | - } | ||
| 352 | - }) | ||
| 353 | - } | ||
| 354 | - @objc func agreeBtnAction(){ | ||
| 355 | - //同意协议按钮 | ||
| 356 | - delegate.window?.subviews.forEach({ view in | ||
| 357 | - if view.tag >= 20000{ | ||
| 358 | - view.removeFromSuperview() | ||
| 359 | - } | ||
| 360 | - }) | ||
| 361 | - //本地存储已同意 | ||
| 362 | - UserDefaults.standard.set(true,forKey: "is_agree_shuzijianlixieyi") | ||
| 363 | - | ||
| 364 | - //跳转数字简历页面 | ||
| 365 | - let vc = CNLiveDigitalResumeController() | ||
| 366 | - self.navigationController?.pushViewController(vc, animated: true) | ||
| 367 | - } | ||
| 368 | - | 260 | + |
| 369 | } | 261 | } |
metaCode/Classes/Main/HomePage/ViewModel/Vitae/CNLiveVitaeViewModel.swift
| @@ -110,6 +110,32 @@ class CNLiveVitaeViewModel:NSObject{ | @@ -110,6 +110,32 @@ class CNLiveVitaeViewModel:NSObject{ | ||
| 110 | 110 | ||
| 111 | } | 111 | } |
| 112 | 112 | ||
| 113 | + | ||
| 114 | + /// 获取省市区县列表 | ||
| 115 | + /// @param id | ||
| 116 | + static func getCityListWithId(id:String,resultBlock: @escaping downSlideResultBlock){ | ||
| 117 | + let param = NSMutableDictionary() | ||
| 118 | + param.setValue(id, forKey: "id") | ||
| 119 | + | ||
| 120 | + CNLiveNetworking.setAllowRequestDefaultArgument(true) | ||
| 121 | + CNLiveNetworking.setupShowDataResult(false) | ||
| 122 | + CNLiveNetworking.setupDSRequest(true) | ||
| 123 | + let custom_param = NSMutableDictionary() | ||
| 124 | + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appId_wjj, forKey: "appId") | ||
| 125 | + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appKey_wjj, forKey: "appKey") | ||
| 126 | + CNLiveNetworking.setupCustomParam(custom_param as? [String : String]) | ||
| 127 | + | ||
| 128 | + CNLiveNetworking.requestNetwork(with: .POST, urlString: "https://managemall.cnlive.com"+"/Api/Index3/getCityList", param: param as! [String : String], cacheType: .networkOnly) { task, result, error in | ||
| 129 | + hiddenLoading() | ||
| 130 | + if (error == nil) { | ||
| 131 | + let res = (result as! Dictionary<String, Any>)["data"] as! Dictionary<String, Any> | ||
| 132 | + let listModel = newDictionaryToModel(res, CNLiveAddrAreaListModel.self) | ||
| 133 | + resultBlock(listModel as Any,.success) | ||
| 134 | + }else{ | ||
| 135 | + resultBlock(NSNull(),.failed) | ||
| 136 | + } | ||
| 137 | + } | ||
| 138 | + } | ||
| 113 | } | 139 | } |
| 114 | 140 | ||
| 115 | 141 |
metaCode/Classes/Main/Model/Vitae/CNLiveAddrAreaModel.swift
0 → 100644
| 1 | +// | ||
| 2 | +// CNLiveAddrAreaModel.swift | ||
| 3 | +// metaCode | ||
| 4 | +// | ||
| 5 | +// Created by zx on 2024/7/19. | ||
| 6 | +// 数字简历位置model 省市区 | ||
| 7 | + | ||
| 8 | +import Foundation | ||
| 9 | + | ||
| 10 | +class CNLiveAddrAreaListModel:BaseModel{ | ||
| 11 | + var list:[CNLiveAddrAreaModel]? | ||
| 12 | +} | ||
| 13 | +class CNLiveAddrAreaModel:BaseModel{ | ||
| 14 | + ///id | ||
| 15 | + var id:String = "" | ||
| 16 | + ///名称 | ||
| 17 | + var name:String = "" | ||
| 18 | + ///父级id(最上级为0) | ||
| 19 | + var pid:String = "" | ||
| 20 | + ///1省 2市 3区(县) | ||
| 21 | + var level:String = "" | ||
| 22 | +} |