Commit b930da17517d554c1ee6863408a7afd41f03256d

Authored by liushiyu
1 parent 8ae10b35

认证选择界面,回复显示逻辑

metaCode.xcodeproj/project.pbxproj
... ... @@ -213,6 +213,7 @@
213 213 79BB96A82AF223FB00AEA4AC /* CNLiveConfigAlertManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79BB96A72AF223FB00AEA4AC /* CNLiveConfigAlertManager.swift */; };
214 214 79BB96AA2AF2330900AEA4AC /* CNLiveShopBodyDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79BB96A92AF2330900AEA4AC /* CNLiveShopBodyDetailView.swift */; };
215 215 79D094DC2B0765DD008CB1F3 /* CNLiveShopBodyCouponGoodsListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79D094DB2B0765DD008CB1F3 /* CNLiveShopBodyCouponGoodsListView.swift */; };
  216 + 79DC67642B5FB60900261A94 /* CNLiveMineAuthFormViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79DC67632B5FB60900261A94 /* CNLiveMineAuthFormViewController.swift */; };
216 217 79E496E32AB9357000127BF8 /* UITableViewCell+CNLiveExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79E496E22AB9357000127BF8 /* UITableViewCell+CNLiveExtension.swift */; };
217 218 79E496E82AB9674300127BF8 /* NSMutableAttributedString+CNLiveExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79E496E72AB9674300127BF8 /* NSMutableAttributedString+CNLiveExtensions.swift */; };
218 219 79E672032AFDFA9C00F2F768 /* CNLiveMineSignOutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79E672022AFDFA9C00F2F768 /* CNLiveMineSignOutViewController.swift */; };
... ... @@ -477,6 +478,7 @@
477 478 79BB96A72AF223FB00AEA4AC /* CNLiveConfigAlertManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveConfigAlertManager.swift; sourceTree = "<group>"; };
478 479 79BB96A92AF2330900AEA4AC /* CNLiveShopBodyDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopBodyDetailView.swift; sourceTree = "<group>"; };
479 480 79D094DB2B0765DD008CB1F3 /* CNLiveShopBodyCouponGoodsListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopBodyCouponGoodsListView.swift; sourceTree = "<group>"; };
  481 + 79DC67632B5FB60900261A94 /* CNLiveMineAuthFormViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineAuthFormViewController.swift; sourceTree = "<group>"; };
480 482 79E496E22AB9357000127BF8 /* UITableViewCell+CNLiveExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITableViewCell+CNLiveExtension.swift"; sourceTree = "<group>"; };
481 483 79E496E72AB9674300127BF8 /* NSMutableAttributedString+CNLiveExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSMutableAttributedString+CNLiveExtensions.swift"; sourceTree = "<group>"; };
482 484 79E672022AFDFA9C00F2F768 /* CNLiveMineSignOutViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineSignOutViewController.swift; sourceTree = "<group>"; };
... ... @@ -1059,6 +1061,7 @@
1059 1061 7905BB482AB0588B0089BC50 /* CNLiveMineAuthResultViewController.swift */,
1060 1062 79803E262AD68D3100F05F68 /* CNLiveMineShopViewController.swift */,
1061 1063 79E672022AFDFA9C00F2F768 /* CNLiveMineSignOutViewController.swift */,
  1064 + 79DC67632B5FB60900261A94 /* CNLiveMineAuthFormViewController.swift */,
1062 1065 );
1063 1066 path = Controller;
1064 1067 sourceTree = "<group>";
... ... @@ -1826,6 +1829,7 @@
1826 1829 1917335C2B3283FF007BCC04 /* CNLiveCouponGoodsListSearchView.swift in Sources */,
1827 1830 798A44F92A30835400815935 /* CNLiveHelpFeedBackViewController.swift in Sources */,
1828 1831 1938BD262B479D3400390A34 /* UILabel+FormattedText.swift in Sources */,
  1832 + 79DC67642B5FB60900261A94 /* CNLiveMineAuthFormViewController.swift in Sources */,
1829 1833 790D01852A2D89E100C5978D /* UIColor+CNLiveExtensions.swift in Sources */,
1830 1834 794FF1092B02131300385E85 /* CNLiveSaveSearchDB.swift in Sources */,
1831 1835 79396EED2A319F220053E1AF /* NSObject+CNLiveExtensions.swift in Sources */,
... ...
metaCode/Classes/Main/MinePage/Controller/CNLiveMineAddInfoViewController.swift
... ... @@ -335,7 +335,7 @@ extension CNLiveMineAddInfoViewController {
335 335 }
336 336 }
337 337 } else {
338   - self.navigationController?.pushViewController(CNLiveMineInputViewController.init(listModel: listModel, authType: .enterprise), animated: true)
  338 + self.navigationController?.pushViewController(CNLiveMineAuthFormViewController.init(listModel: listModel), animated: true)
339 339 }
340 340 }
341 341 }
... ...
metaCode/Classes/Main/MinePage/Controller/CNLiveMineAuthFormViewController.swift 0 → 100644
  1 +//
  2 +// CNLiveMineAuthFormViewController.swift
  3 +// metaCode
  4 +//
  5 +// Created by open on 2024/1/23.
  6 +//
  7 +
  8 +import Foundation
  9 +import UIKit
  10 +
  11 +class CNLiveMineAuthFormViewController: CNLiveBaseViewController, UITableViewDelegate, UITableViewDataSource {
  12 +
  13 + let kMIneBodyAuthFormViewCellIdentifier = "kMIneBodyAuthFormViewCellIdentifier"
  14 + lazy var tableView: UITableView = {
  15 + let tableView = UITableView.init(frame: .zero, style: .grouped)
  16 + tableView.delegate = self
  17 + tableView.dataSource = self
  18 + tableView.backgroundColor = .clear
  19 + tableView.separatorStyle = .none
  20 + tableView.showsVerticalScrollIndicator = false
  21 + tableView.showsHorizontalScrollIndicator = false
  22 + tableView.register(MineAuthFormTableViewCell.self, forCellReuseIdentifier: kMIneBodyAuthFormViewCellIdentifier)
  23 + return tableView
  24 + }()
  25 +
  26 + var _listModel: StandListModel!
  27 +
  28 + init(listModel:StandListModel) {
  29 + super.init(nibName:nil, bundle:nil)
  30 + _listModel = listModel
  31 + }
  32 +
  33 + required init?(coder: NSCoder) {
  34 + fatalError("init(coder:) has not been implemented")
  35 + }
  36 +
  37 + override func viewDidLoad() {
  38 + super.viewDidLoad()
  39 + navigationBarHidden = false
  40 + titleName = "元码官方认证"
  41 +
  42 + view.addSubview(tableView)
  43 + tableView.snp.makeConstraints { make in
  44 + make.top.equalTo(KNavigationHeight)
  45 + make.left.right.equalToSuperview()
  46 + make.bottom.equalToSuperview().offset(get_system_tabbar_height() - get_system_tabbar_ui_height())
  47 + }
  48 + }
  49 +
  50 + func numberOfSections(in tableView: UITableView) -> Int {
  51 + return 2
  52 + }
  53 + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  54 + return 1
  55 + }
  56 + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  57 + guard let cell = tableView.dequeueReusableCell(withIdentifier: kMIneBodyAuthFormViewCellIdentifier) as? MineAuthFormTableViewCell else {
  58 + return MineAuthFormTableViewCell()
  59 + }
  60 + if indexPath.section == 0 {
  61 + cell.mainView.image = UIImage(named: "mine_persion_auth_btn")
  62 + }
  63 + if indexPath.section == 1 {
  64 + cell.mainView.image = UIImage(named: "mine_form_auth_btn")
  65 + }
  66 + return cell
  67 + }
  68 + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
  69 + return adapt_length(length: 190)
  70 + }
  71 + func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
  72 + return adapt_length(length: 10)
  73 + }
  74 + func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
  75 + return adapt_length(length: 10)
  76 + }
  77 + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  78 + if indexPath.section == 0 {
  79 + self.navigationController?.pushViewController(CNLiveMineInputViewController.init(listModel: _listModel, authType: .person), animated: true)
  80 + }
  81 + if indexPath.section == 1 {
  82 + self.navigationController?.pushViewController(CNLiveMineInputViewController.init(listModel: _listModel, authType: .enterprise), animated: true)
  83 + }
  84 + }
  85 +}
  86 +
  87 +class MineAuthFormTableViewCell: UITableViewCell {
  88 +
  89 + lazy var mainView: UIImageView = {
  90 + let view = UIImageView.init()
  91 + view.backgroundColor = .white
  92 + view.contentMode = .scaleAspectFill
  93 + view.layer.cornerRadius = adapt_length(length: 10)
  94 + view.layer.masksToBounds = true
  95 + return view
  96 + }()
  97 +
  98 + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
  99 + super.init(style: style, reuseIdentifier: reuseIdentifier)
  100 + contentView.backgroundColor = .clear
  101 + backgroundColor = .clear
  102 + selectionStyle = .none
  103 +
  104 + contentView.addSubview(mainView)
  105 + mainView.snp.makeConstraints { make in
  106 + make.center.equalToSuperview()
  107 + make.top.left.equalToSuperview().offset(10)
  108 + make.bottom.right.equalToSuperview().offset(-10)
  109 + }
  110 + }
  111 +
  112 + required init?(coder: NSCoder) {
  113 + fatalError("init(coder:) has not been implemented")
  114 + }
  115 +}
  116 +
... ...
metaCode/Classes/Main/MinePage/Controller/CNLiveMineInputViewController.swift
... ... @@ -154,7 +154,7 @@ class CNLiveMineInputViewController : CNLiveBaseViewController, UITableViewDeleg
154 154  
155 155 private func setupWithContentUploadImage(resultUploadImageBlock: @escaping resultUploadImageBlock) {
156 156 if select_image != nil {
157   - let uploadKey = UploadManager.uploadImage(imageData: select_image.jpegData(compressionQuality: 1.0)! as NSData, progressBlock: {key, progress in
  157 + _ = UploadManager.uploadImage(imageData: select_image.jpegData(compressionQuality: 1.0)! as NSData, progressBlock: {key, progress in
158 158 print("获取进度==>\(progress)")
159 159 }, successBlock: { key,url in
160 160 resultUploadImageBlock(url)
... ... @@ -223,7 +223,13 @@ extension CNLiveMineInputViewController {
223 223  
224 224 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
225 225 let infoModel = self.dataArray[indexPath.row] as! MineStandInfoModel
226   - return infoModel.inputType == 6 ? 70 : 50
  226 + if infoModel.inputType == 6 {
  227 + return adapt_length(length: 70)
  228 + } else if infoModel.inputType == 16 {
  229 + return adapt_length(length: 150)
  230 + } else {
  231 + return adapt_length(length: 50)
  232 + }
227 233 }
228 234  
229 235 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
... ...
metaCode/Classes/Main/MinePage/View/CNLiveMineBodyListView.swift
... ... @@ -8,7 +8,7 @@
8 8 import Foundation
9 9 import Kingfisher
10 10 import APButton
11   -
  11 +import QMUIKit
12 12 class MineBodyOneListViewCell : UITableViewCell {
13 13  
14 14 lazy var nameLabel: UILabel = {
... ... @@ -747,7 +747,7 @@ enum CNLiveBodyInputAuthShowType {
747 747 }
748 748  
749 749 typealias resultInputBlock = (_ type: CNLiveBodyInputAuthShowType) -> Void
750   -class MineBodyInputAuthCell: UITableViewCell, UITextFieldDelegate {
  750 +class MineBodyInputAuthCell: UITableViewCell, UITextFieldDelegate, QMUITextViewDelegate {
751 751  
752 752 var identifier = false
753 753 lazy var mainView: UIView = {
... ... @@ -775,6 +775,23 @@ class MineBodyInputAuthCell: UITableViewCell, UITextFieldDelegate {
775 775 return contentField
776 776 }()
777 777  
  778 + lazy var contentTextView: QMUITextView = {
  779 + let textView = QMUITextView.init(frame: .zero)
  780 + textView.backgroundColor = HexColor("#F7F8FA")
  781 + textView.font = BoldFont_15_Fit
  782 + textView.textColor = HexColor("#333333")
  783 + textView.placeholderColor = HexColor("#C7C7C7")
  784 + textView.placeholderMargins = UIEdgeInsets(top: 0, left: 5, bottom: 00, right: 5)
  785 + textView.contentInset = UIEdgeInsets(top: 5, left: 10, bottom: 5, right: 10)
  786 + textView.maximumHeight = adapt_length(length: 70)
  787 + textView.textAlignment = .left
  788 + textView.layer.masksToBounds = true
  789 + textView.layer.cornerRadius = adapt_length(length: 10)
  790 + textView.isHidden = true
  791 + textView.delegate = self
  792 + return textView
  793 + }()
  794 +
778 795 lazy var tapGesture = UITapGestureRecognizer()
779 796 lazy var iconView: UIImageView = {
780 797 let iconView = UIImageView.init()
... ... @@ -817,6 +834,7 @@ class MineBodyInputAuthCell: UITableViewCell, UITextFieldDelegate {
817 834 mainView.addSubview(nameLabel)
818 835 mainView.addSubview(moreBtn)
819 836 mainView.addSubview(contentField)
  837 + mainView.addSubview(contentTextView)
820 838 mainView.addSubview(iconView)
821 839 mainView.addSubview(moreBtn)
822 840 mainView.addSubview(line_label)
... ... @@ -841,7 +859,10 @@ class MineBodyInputAuthCell: UITableViewCell, UITextFieldDelegate {
841 859 contentField.text = infoModel.value
842 860 }
843 861 contentField.placeholder = "请输入\(infoModel.name ?? "")"//infoModel.sub_title?.count == 0 ? "请输入\(infoModel.name ?? "")" : infoModel.sub_title
  862 + contentTextView.placeholder = "请输入\(infoModel.name ?? "")"
  863 + contentTextView.maximumTextLength = UInt(infoModel.length)
844 864 line_label.isHidden = is_last
  865 + contentTextView.isHidden = true
845 866 if infoModel.inputType == 2 {
846 867 contentField.keyboardType = .numberPad
847 868 } else if (infoModel.inputType == 1) {
... ... @@ -861,6 +882,21 @@ class MineBodyInputAuthCell: UITableViewCell, UITextFieldDelegate {
861 882 make.centerY.equalToSuperview()
862 883 make.right.equalTo(moreBtn.snp.left)
863 884 }
  885 + } else if (infoModel.inputType == 16) {//下面显示大文本框
  886 + contentField.isHidden = true
  887 + moreBtn.isHidden = true
  888 + iconView.isHidden = true
  889 + contentTextView.isHidden = false
  890 + nameLabel.snp.remakeConstraints { make in
  891 + make.top.equalToSuperview().offset(adapt_length(length: 10))
  892 + make.left.equalToSuperview().offset(15)
  893 + }
  894 + contentTextView.snp.remakeConstraints { make in
  895 + make.centerX.equalToSuperview()
  896 + make.top.equalTo(nameLabel.snp.bottom).offset(adapt_length(length: 10))
  897 + make.left.equalToSuperview().offset(adapt_length(length: 10))
  898 + make.bottom.right.equalToSuperview().offset(-adapt_length(length: 10))
  899 + }
864 900 }
865 901 }
866 902  
... ... @@ -883,6 +919,10 @@ class MineBodyInputAuthCell: UITableViewCell, UITextFieldDelegate {
883 919 make.centerY.equalToSuperview()
884 920 make.right.equalToSuperview().offset(-10)
885 921 }
  922 + contentTextView.snp.makeConstraints { make in
  923 + make.centerY.equalToSuperview()
  924 + make.right.equalToSuperview().offset(-10)
  925 + }
886 926 moreBtn.snp.makeConstraints { make in
887 927 make.centerY.equalToSuperview()
888 928 make.right.equalToSuperview().offset(-5)
... ... @@ -916,6 +956,27 @@ class MineBodyInputAuthCell: UITableViewCell, UITextFieldDelegate {
916 956 _resultInputBlock!(.end)
917 957 }
918 958  
  959 + func textViewShouldEndEditing(_ textView: UITextView) -> Bool {
  960 + if textView == contentTextView {
  961 + if contentTextView.text!.count > _infoModel!.length {
  962 + showMessage(message: "\(_infoModel!.name ?? "")最大限制\(_infoModel!.length)个字")
  963 + return false
  964 + }
  965 + }
  966 + return contentTextView.resignFirstResponder()
  967 + }
  968 +
  969 + func textViewDidEndEditing(_ textView: UITextView) {
  970 + _infoModel?.value = textView.text ?? ""
  971 + _resultInputBlock!(.end)
  972 + }
  973 +
  974 + func textViewShouldReturn(_ textView: QMUITextView!) -> Bool {
  975 + _infoModel?.value = textView.text ?? ""
  976 + _resultInputBlock!(.end)
  977 + return true
  978 + }
  979 +
919 980 @objc func setupSelectButtonAction() {
920 981 _resultInputBlock!(.select)
921 982 }
... ...
metaCode/Classes/Main/MinePage/ViewModel/CNLiveMineBaseModel.swift
... ... @@ -233,7 +233,7 @@ class MineStandInfoModel: BaseModel {
233 233 var sort: Int = 0
234 234 var name: String?//卡片标签
235 235 var sub_title: String?//报名项说明
236   - var inputType: Int = 0//1 文本输入 2数字输入 3下拉选择 4认证时间 5认证编码 6正图 7小竖图 8大横图 9单选 10多选 11选项 12时间选择器 13主标题
  236 + var inputType: Int = 0//1 文本输入 2数字输入 3下拉选择 4认证时间 5认证编码 6正图 7小竖图 8大横图 9单选 10多选 11选项 12时间选择器 13主标题 16大文本框
237 237 var nonEmpty: Bool = false
238 238 var length: Int = 10
239 239 var children = [MineStandInfoModel]()
... ...
metaCode/Classes/Main/VideoPage/View/CNLiveShortVideoCommentListView.swift
... ... @@ -364,9 +364,10 @@ class CNLiveShortVideoCommentListTableViewCell: UITableViewCell , UITableViewDel
364 364 titleLabel.lineBreakMode = .byTruncatingTail
365 365 titleLabel.numberOfLines = 2
366 366 titleLabel.font = medium_adapt_font(pointSize: 12)
367   - titleLabel.displaysAsynchronously = true
368   - titleLabel.clearContentsBeforeAsynchronouslyDisplay = false
  367 + titleLabel.displaysAsynchronously = false
  368 + titleLabel.clearContentsBeforeAsynchronouslyDisplay = true
369 369 titleLabel.fadeOnAsynchronouslyDisplay = false
  370 + titleLabel.fadeOnHighlight = false
370 371 titleLabel.textAlignment = .left
371 372 titleLabel.textVerticalAlignment = .center
372 373 titleLabel.textContainerInset = UIEdgeInsets.zero
... ... @@ -377,9 +378,10 @@ class CNLiveShortVideoCommentListTableViewCell: UITableViewCell , UITableViewDel
377 378 lazy var commentLabel: YYLabel = {
378 379 let commentLabel = YYLabel()
379 380 commentLabel.textColor = HexColor("#333333")
380   - commentLabel.displaysAsynchronously = true
  381 + commentLabel.displaysAsynchronously = false
381 382 commentLabel.clearContentsBeforeAsynchronouslyDisplay = false
382 383 commentLabel.fadeOnAsynchronouslyDisplay = false
  384 + commentLabel.fadeOnHighlight = false
383 385 commentLabel.font = medium_adapt_font(pointSize: 16)
384 386 commentLabel.numberOfLines = 0
385 387 commentLabel.textAlignment = .left
... ... @@ -576,7 +578,7 @@ class CNLiveShortVideoCommentListTableViewCell: UITableViewCell , UITableViewDel
576 578 }
577 579 self.tableView.snp.removeConstraints()
578 580 self.tableView.removeFromSuperview()
579   - if replyData.replyCount ?? 0 > 2 {
  581 + if replyData.replyCount ?? 0 > 0 {
580 582 self.contentView.addSubview(self.tableView)
581 583 self.tableView.snp.makeConstraints { make in
582 584 make.left.equalToSuperview().offset(60)
... ...
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_form_auth_btn.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "mine_form_auth_btn@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "mine_form_auth_btn@3x.png",
  14 + "idiom" : "universal",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "author" : "xcode",
  20 + "version" : 1
  21 + }
  22 +}
... ...
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_form_auth_btn.imageset/mine_form_auth_btn@2x.png 0 → 100644

200 KB

metaCode/Supporting Files/Assets.xcassets/MinePage/mine_form_auth_btn.imageset/mine_form_auth_btn@3x.png 0 → 100644

457 KB

metaCode/Supporting Files/Assets.xcassets/MinePage/mine_persion_auth_btn.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "mine_persion_auth_btn@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "mine_persion_auth_btn@3x.png",
  14 + "idiom" : "universal",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "author" : "xcode",
  20 + "version" : 1
  21 + }
  22 +}
... ...
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_persion_auth_btn.imageset/mine_persion_auth_btn@2x.png 0 → 100644

206 KB

metaCode/Supporting Files/Assets.xcassets/MinePage/mine_persion_auth_btn.imageset/mine_persion_auth_btn@3x.png 0 → 100644

464 KB