Commit 1cf97046bffa6c737493bcc8b99959569865a60f

Authored by 张旭
2 parents cef83720 6ddc064c
metaCode/Classes/Main/MinePage/Controller/CNLiveMineInputViewController.swift
@@ -78,7 +78,7 @@ class CNLiveMineInputViewController : CNLiveBaseViewController, UITableViewDeleg @@ -78,7 +78,7 @@ class CNLiveMineInputViewController : CNLiveBaseViewController, UITableViewDeleg
78 } 78 }
79 79
80 private func loadStandInfoData() { 80 private func loadStandInfoData() {
81 - CNLiveMineViewModel.requestsStandInfo(identityId: "\(_listModel.id)") {[weak self] result, respStatue in 81 + CNLiveMineViewModel.requestsStandInfo(identityId: "\(_listModel.id)", type: .nodate) {[weak self] result, respStatue in
82 if respStatue == .success { 82 if respStatue == .success {
83 self?.dataArray.addObjects(from: result as! [Any]) 83 self?.dataArray.addObjects(from: result as! [Any])
84 self?.tableView.reloadData() 84 self?.tableView.reloadData()
@@ -155,10 +155,11 @@ extension CNLiveMineInputViewController { @@ -155,10 +155,11 @@ extension CNLiveMineInputViewController {
155 155
156 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 156 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
157 let infoModel = self.dataArray[indexPath.row] as! MineStandInfoModel 157 let infoModel = self.dataArray[indexPath.row] as! MineStandInfoModel
158 - if infoModel.children.count > 0 { 158 + if infoModel.inputType == 3 || infoModel.inputType == 4 {
  159 + let show_type: CNLiveStandListAlertShowType = infoModel.children.count > 0 ? .custom : .date
159 self.view.endEditing(true) 160 self.view.endEditing(true)
160 DispatchQueue.main.asyncAfter(deadline: .now()+0.5) { 161 DispatchQueue.main.asyncAfter(deadline: .now()+0.5) {
161 - MineStandListAlertView.showStandListView(infos: infoModel.children as NSArray,name: "选择\(infoModel.name ?? "")") {[weak self] text in 162 + MineStandListAlertView.showStandListView(infos: infoModel.children as NSArray,name: "选择\(infoModel.name ?? "")", show_type: show_type) {[weak self] text in
162 infoModel.value = text 163 infoModel.value = text
163 self?.tableView.reloadData() 164 self?.tableView.reloadData()
164 let is_result = self?.inspectResult() 165 let is_result = self?.inspectResult()
metaCode/Classes/Main/MinePage/View/CNLiveMineBodyListView.swift
@@ -703,6 +703,13 @@ class MineBodyInputAuthCell: UITableViewCell, UITextFieldDelegate { @@ -703,6 +703,13 @@ class MineBodyInputAuthCell: UITableViewCell, UITextFieldDelegate {
703 make.centerY.equalToSuperview() 703 make.centerY.equalToSuperview()
704 make.right.equalTo(moreBtn.snp.left) 704 make.right.equalTo(moreBtn.snp.left)
705 } 705 }
  706 + }else if (infoModel.inputType == 4) {//禁止输入 显示下拉时间显示
  707 + contentField.isUserInteractionEnabled = false
  708 + moreBtn.isHidden = false
  709 + contentField.snp.remakeConstraints { make in
  710 + make.centerY.equalToSuperview()
  711 + make.right.equalTo(moreBtn.snp.left)
  712 + }
706 } 713 }
707 } 714 }
708 715
metaCode/Classes/Main/MinePage/View/CNLiveMineInfoAlertView.swift
@@ -7,10 +7,7 @@ @@ -7,10 +7,7 @@
7 7
8 import Foundation 8 import Foundation
9 9
10 -//enum CNLiveMineInfoAlertShowType {  
11 -// case gender  
12 -// case birthday  
13 -//} 10 +
14 11
15 typealias CloseGenderResultBlock = (_ text: String) ->Void 12 typealias CloseGenderResultBlock = (_ text: String) ->Void
16 class MineInfoAlertView: UIView { 13 class MineInfoAlertView: UIView {
@@ -105,7 +102,6 @@ class MineInfoAlertView: UIView { @@ -105,7 +102,6 @@ class MineInfoAlertView: UIView {
105 lazy var datePicker: UIDatePicker = { 102 lazy var datePicker: UIDatePicker = {
106 let datePicker = UIDatePicker.init() 103 let datePicker = UIDatePicker.init()
107 datePicker.locale = Locale(identifier: "zh_CN") 104 datePicker.locale = Locale(identifier: "zh_CN")
108 - datePicker.timeZone = TimeZone.init(identifier: "UTC")  
109 datePicker.setValue(HexColor("#3C3C3C"), forKey: "textColor") 105 datePicker.setValue(HexColor("#3C3C3C"), forKey: "textColor")
110 datePicker.datePickerMode = .date 106 datePicker.datePickerMode = .date
111 datePicker.isHidden = true 107 datePicker.isHidden = true
@@ -545,6 +541,11 @@ class UpdataAlertView: UIView { @@ -545,6 +541,11 @@ class UpdataAlertView: UIView {
545 } 541 }
546 } 542 }
547 543
  544 +
  545 +enum CNLiveStandListAlertShowType {
  546 + case custom
  547 + case date
  548 +}
548 class MineStandListAlertView: UIView, UIPickerViewDelegate, UIPickerViewDataSource { 549 class MineStandListAlertView: UIView, UIPickerViewDelegate, UIPickerViewDataSource {
549 550
550 lazy var tapGesture = UITapGestureRecognizer() 551 lazy var tapGesture = UITapGestureRecognizer()
@@ -568,9 +569,34 @@ class MineStandListAlertView: UIView, UIPickerViewDelegate, UIPickerViewDataSour @@ -568,9 +569,34 @@ class MineStandListAlertView: UIView, UIPickerViewDelegate, UIPickerViewDataSour
568 pickerView.backgroundColor = .white 569 pickerView.backgroundColor = .white
569 pickerView.delegate = self 570 pickerView.delegate = self
570 pickerView.dataSource = self 571 pickerView.dataSource = self
  572 + pickerView.isHidden = !(_show_type == .custom)
571 return pickerView 573 return pickerView
572 }() 574 }()
573 575
  576 + lazy var datePicker: UIDatePicker = {
  577 + let datePicker = UIDatePicker.init()
  578 + datePicker.locale = Locale(identifier: "zh_CN")
  579 + datePicker.setValue(HexColor("#3C3C3C"), forKey: "textColor")
  580 + datePicker.datePickerMode = .date
  581 + datePicker.isHidden = !(_show_type == .date)
  582 + if #available(iOS 13.4, *) {
  583 + datePicker.preferredDatePickerStyle = .wheels
  584 + } else {
  585 + // Fallback on earlier versions
  586 + }
  587 + if UserInfoManager.shared.userInfo.birthday.count > 0 {
  588 + let dateFomatter = DateFormatter()
  589 + dateFomatter.dateFormat = "yyyy-MM-dd"
  590 + dateFomatter.locale = Locale.init(identifier: "zh_CN")
  591 + let date = dateFomatter.date(from: UserInfoManager.shared.userInfo.birthday)
  592 + datePicker.setDate(date!, animated: true)
  593 + }
  594 + datePicker.minimumDate = Date.init(timeIntervalSince1970: -60*60*24*365*60)
  595 + datePicker.maximumDate = Date.init(timeInterval: 60*60*24*365*10, since: Date.init())
  596 + datePicker.addTarget(self, action: #selector(dateChangeAction), for: .valueChanged)
  597 + return datePicker
  598 + }()
  599 +
574 lazy var nameLable : UILabel = { 600 lazy var nameLable : UILabel = {
575 let nameLable = UILabel.init() 601 let nameLable = UILabel.init()
576 nameLable.backgroundColor = .white 602 nameLable.backgroundColor = .white
@@ -605,17 +631,27 @@ class MineStandListAlertView: UIView, UIPickerViewDelegate, UIPickerViewDataSour @@ -605,17 +631,27 @@ class MineStandListAlertView: UIView, UIPickerViewDelegate, UIPickerViewDataSour
605 }() 631 }()
606 632
607 var text: String? 633 var text: String?
608 - var result: CloseGenderResultBlock?  
609 var _infos: NSArray? 634 var _infos: NSArray?
610 - init(frame: CGRect, infos: NSArray) { 635 + var _show_type: CNLiveStandListAlertShowType?
  636 + var result: CloseGenderResultBlock?
  637 + init(frame: CGRect, infos: NSArray, show_type: CNLiveStandListAlertShowType) {
611 super.init(frame: frame) 638 super.init(frame: frame)
612 639
613 _infos = infos 640 _infos = infos
614 - text = (infos.firstObject as! MineStandInfoModel).name 641 + _show_type = show_type//56842.5+7840.34
  642 + if _show_type == .custom {
  643 + text = (infos.firstObject as! MineStandInfoModel).name
  644 + }else{
  645 + let formatter = DateFormatter()
  646 + formatter.dateFormat = "yyyy-MM-dd"
  647 + text = formatter.string(from: datePicker.date)
  648 + }
  649 +
615 650
616 addSubview(grayMaskView) 651 addSubview(grayMaskView)
617 addSubview(backView) 652 addSubview(backView)
618 backView.addSubview(pickerView) 653 backView.addSubview(pickerView)
  654 + backView.addSubview(datePicker)
619 backView.addSubview(nameLable) 655 backView.addSubview(nameLable)
620 backView.addSubview(lineLable) 656 backView.addSubview(lineLable)
621 backView.addSubview(closeButton) 657 backView.addSubview(closeButton)
@@ -658,10 +694,15 @@ class MineStandListAlertView: UIView, UIPickerViewDelegate, UIPickerViewDataSour @@ -658,10 +694,15 @@ class MineStandListAlertView: UIView, UIPickerViewDelegate, UIPickerViewDataSour
658 make.left.right.equalToSuperview() 694 make.left.right.equalToSuperview()
659 make.top.equalTo(lineLable.snp.bottom) 695 make.top.equalTo(lineLable.snp.bottom)
660 } 696 }
  697 + datePicker.snp.makeConstraints { make in
  698 + make.bottom.equalToSuperview()
  699 + make.left.right.equalToSuperview()
  700 + make.top.equalTo(lineLable.snp.bottom)
  701 + }
661 } 702 }
662 703
663 - static public func showStandListView(infos: NSArray, name: String, result: @escaping CloseGenderResultBlock) {  
664 - let pickerView = MineStandListAlertView.init(frame: .zero, infos: infos) 704 + static public func showStandListView(infos: NSArray, name: String, show_type: CNLiveStandListAlertShowType, result: @escaping CloseGenderResultBlock) {
  705 + let pickerView = MineStandListAlertView.init(frame: .zero, infos: infos, show_type: show_type)
665 pickerView.result = result 706 pickerView.result = result
666 pickerView.nameLable.text = name 707 pickerView.nameLable.text = name
667 let window = UIApplication.shared.windows.last 708 let window = UIApplication.shared.windows.last
@@ -719,4 +760,12 @@ class MineStandListAlertView: UIView, UIPickerViewDelegate, UIPickerViewDataSour @@ -719,4 +760,12 @@ class MineStandListAlertView: UIView, UIPickerViewDelegate, UIPickerViewDataSour
719 result!(text ?? "") 760 result!(text ?? "")
720 } 761 }
721 } 762 }
  763 +
  764 + @objc func dateChangeAction(sender: UIDatePicker) {
  765 + let formatter = DateFormatter()
  766 + formatter.dateFormat = "yyyy-MM-dd"
  767 + let date = formatter.string(from: datePicker.date)
  768 + print("获取到的时间是:\(date)")
  769 + text = date
  770 + }
722 } 771 }
metaCode/Classes/Main/MinePage/ViewModel/CNLiveMineBaseModel.swift
@@ -180,7 +180,7 @@ class MineStandInfoBaseModel: BaseModel { @@ -180,7 +180,7 @@ class MineStandInfoBaseModel: BaseModel {
180 class MineStandInfoModel: BaseModel { 180 class MineStandInfoModel: BaseModel {
181 var authInfoId: Int = 0 181 var authInfoId: Int = 0
182 var name: String? 182 var name: String?
183 - var inputType: Int = 0//1 文本输入 2数字输入 3下拉选择 4后台生成时间 5后台生成编码 6头像类型 183 + var inputType: Int = 0//1文本输入 2数字输入 3下拉选择 4后台生成时间 5后台生成编码 6头像类型
184 var sort: Int = 0 184 var sort: Int = 0
185 var nonEmpty: Bool = false 185 var nonEmpty: Bool = false
186 var input: Bool = false 186 var input: Bool = false
metaCode/Classes/Main/MinePage/ViewModel/CNLiveMineViewModel.swift
@@ -31,6 +31,11 @@ enum CNLiveMineSortType { @@ -31,6 +31,11 @@ enum CNLiveMineSortType {
31 case authlist //我的身份信息列表界面 31 case authlist //我的身份信息列表界面
32 case minelist //我的界面->我的身份 32 case minelist //我的界面->我的身份
33 } 33 }
  34 +
  35 +enum CNLiveMineGetWriteType {
  36 + case nodate //未填写
  37 + case havedate //已填写
  38 +}
34 typealias resultBlock = (_ type: CNLiveMineRequestType,_ result: Bool) -> Void 39 typealias resultBlock = (_ type: CNLiveMineRequestType,_ result: Bool) -> Void
35 typealias resultNewsBlock = (_ result: Any,_ respStatue :CNLiveMineResponseType) -> Void 40 typealias resultNewsBlock = (_ result: Any,_ respStatue :CNLiveMineResponseType) -> Void
36 class CNLiveMineViewModel: NSObject { 41 class CNLiveMineViewModel: NSObject {
@@ -392,7 +397,7 @@ class CNLiveMineViewModel: NSObject { @@ -392,7 +397,7 @@ class CNLiveMineViewModel: NSObject {
392 /// - Parameters: 397 /// - Parameters:
393 /// - identityId: 身份id 398 /// - identityId: 身份id
394 /// - resultBlock: 返回 399 /// - resultBlock: 返回
395 - static func requestsStandInfo(identityId: String, resultBlock: @escaping resultNewsBlock) { 400 + static func requestsStandInfo(identityId: String, type: CNLiveMineGetWriteType, resultBlock: @escaping resultNewsBlock) {
396 let param = NSMutableDictionary() 401 let param = NSMutableDictionary()
397 param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "sid") 402 param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "sid")
398 param.setValue(identityId, forKey: "identityId") 403 param.setValue(identityId, forKey: "identityId")
@@ -406,6 +411,9 @@ class CNLiveMineViewModel: NSObject { @@ -406,6 +411,9 @@ class CNLiveMineViewModel: NSObject {
406 let errorCode = "\(resp["errorCode"] ?? "0")" 411 let errorCode = "\(resp["errorCode"] ?? "0")"
407 if (errorCode == "0") { 412 if (errorCode == "0") {
408 let newsModel = dictionaryToModel(resp as! [String : Any], MineStandInfoBaseModel.self,"data") as! MineStandInfoBaseModel 413 let newsModel = dictionaryToModel(resp as! [String : Any], MineStandInfoBaseModel.self,"data") as! MineStandInfoBaseModel
  414 +// for <#item#> in <#items#> {
  415 +// <#code#>
  416 +// }
409 resultBlock(newsModel.authInfos,.success) 417 resultBlock(newsModel.authInfos,.success)
410 } else { 418 } else {
411 showMessage(message: resp["errorMessage"] as! String) 419 showMessage(message: resp["errorMessage"] as! String)