Commit a91fb738589961efa81e5766c851ce3e3d348e7a

Authored by “张旭”
1 parent 595ab157

保存位置 省市区

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 +}