Commit 6ddc064c715d7048e24144a81475fc98b38bd2dc
1 parent
65c60a29
属性修改
Showing
5 changed files
with
81 additions
and
16 deletions
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
| @@ -144,7 +144,7 @@ class StandListModel: BaseModel { | @@ -144,7 +144,7 @@ class StandListModel: BaseModel { | ||
| 144 | var timeString: String = "" | 144 | var timeString: String = "" |
| 145 | var auth: Bool = false | 145 | var auth: Bool = false |
| 146 | var backgroundImg: String = "" | 146 | var backgroundImg: String = "" |
| 147 | - var backgroundColour: String = "" | 147 | + var backgroundColor: String = "" |
| 148 | var description: String = "" | 148 | var description: String = "" |
| 149 | var cardImg: String = "" | 149 | var cardImg: String = "" |
| 150 | var downPath: String = "" | 150 | var downPath: String = "" |
| @@ -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) |