Commit c25aa29db5e9eafd76d4b54f3476fddaa7d016f9

Authored by liushiyu
1 parent 95533522

提交身份认证界面

Showing 19 changed files with 974 additions and 31 deletions
@@ -12,8 +12,6 @@ target 'metaCode' do @@ -12,8 +12,6 @@ target 'metaCode' do
12 # Comment the next line if you don't want to use dynamic frameworks 12 # Comment the next line if you don't want to use dynamic frameworks
13 use_frameworks! 13 use_frameworks!
14 14
15 -# pod 'YYCategories'  
16 -  
17 # Pods for metaCode 15 # Pods for metaCode
18 #网络请求基础库 16 #网络请求基础库
19 pod 'AFNetworking' 17 pod 'AFNetworking'
@@ -23,6 +21,8 @@ target 'metaCode' do @@ -23,6 +21,8 @@ target 'metaCode' do
23 pod 'IQKeyboardManagerSwift' 21 pod 'IQKeyboardManagerSwift'
24 #布局文件 22 #布局文件
25 pod 'SnapKit' 23 pod 'SnapKit'
  24 + #刷新组件
  25 + pod 'MJRefresh'
26 #加载框 26 #加载框
27 pod 'MBProgressHUD' 27 pod 'MBProgressHUD'
28 #空白占位 28 #空白占位
metaCode.xcodeproj/project.pbxproj
@@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
9 /* Begin PBXBuildFile section */ 9 /* Begin PBXBuildFile section */
10 0D39E93D7229931C86EB1161 /* Pods_metaCode_metaCodeUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63D879B49B1E42F1584DD75E /* Pods_metaCode_metaCodeUITests.framework */; }; 10 0D39E93D7229931C86EB1161 /* Pods_metaCode_metaCodeUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63D879B49B1E42F1584DD75E /* Pods_metaCode_metaCodeUITests.framework */; };
11 1DD2808DF02C120276F99F4D /* Pods_metaCode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F1C55A719CFEE073C06D37CE /* Pods_metaCode.framework */; }; 11 1DD2808DF02C120276F99F4D /* Pods_metaCode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F1C55A719CFEE073C06D37CE /* Pods_metaCode.framework */; };
  12 + 7905BB492AB0588B0089BC50 /* CNLiveMineAuthResultViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7905BB482AB0588B0089BC50 /* CNLiveMineAuthResultViewController.swift */; };
12 790B1FB42A4153E90074CF00 /* CNLiveMineBaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 790B1FB32A4153E90074CF00 /* CNLiveMineBaseModel.swift */; }; 13 790B1FB42A4153E90074CF00 /* CNLiveMineBaseModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 790B1FB32A4153E90074CF00 /* CNLiveMineBaseModel.swift */; };
13 790B1FB62A41938F0074CF00 /* UIImage+CNLiveExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 790B1FB52A41938F0074CF00 /* UIImage+CNLiveExtensions.swift */; }; 14 790B1FB62A41938F0074CF00 /* UIImage+CNLiveExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 790B1FB52A41938F0074CF00 /* UIImage+CNLiveExtensions.swift */; };
14 790B1FB82A41B6A60074CF00 /* CNLiveMineMessageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 790B1FB72A41B6A60074CF00 /* CNLiveMineMessageViewController.swift */; }; 15 790B1FB82A41B6A60074CF00 /* CNLiveMineMessageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 790B1FB72A41B6A60074CF00 /* CNLiveMineMessageViewController.swift */; };
@@ -33,6 +34,7 @@ @@ -33,6 +34,7 @@
33 793CAF522A58FCA200882EF4 /* CNLiveMineExchangeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 793CAF512A58FCA200882EF4 /* CNLiveMineExchangeViewController.swift */; }; 34 793CAF522A58FCA200882EF4 /* CNLiveMineExchangeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 793CAF512A58FCA200882EF4 /* CNLiveMineExchangeViewController.swift */; };
34 796398942A260C0100D045EB /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7963988D2A260C0100D045EB /* AppDelegate.swift */; }; 35 796398942A260C0100D045EB /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7963988D2A260C0100D045EB /* AppDelegate.swift */; };
35 7963989D2A260E6200D045EB /* CNLiveBaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7963989C2A260E6200D045EB /* CNLiveBaseViewController.swift */; }; 36 7963989D2A260E6200D045EB /* CNLiveBaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7963989C2A260E6200D045EB /* CNLiveBaseViewController.swift */; };
  37 + 79656E382AAEBA8E00119A61 /* CNLiveMineInputViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79656E372AAEBA8E00119A61 /* CNLiveMineInputViewController.swift */; };
36 7978A8432A396632007C86B8 /* CNLiveMineViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7978A8422A396632007C86B8 /* CNLiveMineViewModel.swift */; }; 38 7978A8432A396632007C86B8 /* CNLiveMineViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7978A8422A396632007C86B8 /* CNLiveMineViewModel.swift */; };
37 7987BF3D2A497644000A1ABC /* CNLiveMineQuestViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7987BF3C2A497644000A1ABC /* CNLiveMineQuestViewController.swift */; }; 39 7987BF3D2A497644000A1ABC /* CNLiveMineQuestViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7987BF3C2A497644000A1ABC /* CNLiveMineQuestViewController.swift */; };
38 7989B5C52A4BDC6000A19B10 /* CNLiveMineEarnViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7989B5C42A4BDC6000A19B10 /* CNLiveMineEarnViewController.swift */; }; 40 7989B5C52A4BDC6000A19B10 /* CNLiveMineEarnViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7989B5C42A4BDC6000A19B10 /* CNLiveMineEarnViewController.swift */; };
@@ -111,6 +113,7 @@ @@ -111,6 +113,7 @@
111 63D879B49B1E42F1584DD75E /* Pods_metaCode_metaCodeUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_metaCode_metaCodeUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 113 63D879B49B1E42F1584DD75E /* Pods_metaCode_metaCodeUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_metaCode_metaCodeUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
112 67F8190701D1AB7F7724E8BA /* Pods-metaCodeTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-metaCodeTests.release.xcconfig"; path = "Target Support Files/Pods-metaCodeTests/Pods-metaCodeTests.release.xcconfig"; sourceTree = "<group>"; }; 114 67F8190701D1AB7F7724E8BA /* Pods-metaCodeTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-metaCodeTests.release.xcconfig"; path = "Target Support Files/Pods-metaCodeTests/Pods-metaCodeTests.release.xcconfig"; sourceTree = "<group>"; };
113 721865F548C997EFAE525B6F /* Pods-metaCode-metaCodeUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-metaCode-metaCodeUITests.release.xcconfig"; path = "Target Support Files/Pods-metaCode-metaCodeUITests/Pods-metaCode-metaCodeUITests.release.xcconfig"; sourceTree = "<group>"; }; 115 721865F548C997EFAE525B6F /* Pods-metaCode-metaCodeUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-metaCode-metaCodeUITests.release.xcconfig"; path = "Target Support Files/Pods-metaCode-metaCodeUITests/Pods-metaCode-metaCodeUITests.release.xcconfig"; sourceTree = "<group>"; };
  116 + 7905BB482AB0588B0089BC50 /* CNLiveMineAuthResultViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineAuthResultViewController.swift; sourceTree = "<group>"; };
114 790B1FB32A4153E90074CF00 /* CNLiveMineBaseModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineBaseModel.swift; sourceTree = "<group>"; }; 117 790B1FB32A4153E90074CF00 /* CNLiveMineBaseModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineBaseModel.swift; sourceTree = "<group>"; };
115 790B1FB52A41938F0074CF00 /* UIImage+CNLiveExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+CNLiveExtensions.swift"; sourceTree = "<group>"; }; 118 790B1FB52A41938F0074CF00 /* UIImage+CNLiveExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+CNLiveExtensions.swift"; sourceTree = "<group>"; };
116 790B1FB72A41B6A60074CF00 /* CNLiveMineMessageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineMessageViewController.swift; sourceTree = "<group>"; }; 119 790B1FB72A41B6A60074CF00 /* CNLiveMineMessageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineMessageViewController.swift; sourceTree = "<group>"; };
@@ -135,6 +138,7 @@ @@ -135,6 +138,7 @@
135 793CAF512A58FCA200882EF4 /* CNLiveMineExchangeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineExchangeViewController.swift; sourceTree = "<group>"; }; 138 793CAF512A58FCA200882EF4 /* CNLiveMineExchangeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineExchangeViewController.swift; sourceTree = "<group>"; };
136 7963988D2A260C0100D045EB /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; 139 7963988D2A260C0100D045EB /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
137 7963989C2A260E6200D045EB /* CNLiveBaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CNLiveBaseViewController.swift; sourceTree = "<group>"; }; 140 7963989C2A260E6200D045EB /* CNLiveBaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CNLiveBaseViewController.swift; sourceTree = "<group>"; };
  141 + 79656E372AAEBA8E00119A61 /* CNLiveMineInputViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineInputViewController.swift; sourceTree = "<group>"; };
138 7978A8422A396632007C86B8 /* CNLiveMineViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineViewModel.swift; sourceTree = "<group>"; }; 142 7978A8422A396632007C86B8 /* CNLiveMineViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineViewModel.swift; sourceTree = "<group>"; };
139 7987BF3C2A497644000A1ABC /* CNLiveMineQuestViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineQuestViewController.swift; sourceTree = "<group>"; }; 143 7987BF3C2A497644000A1ABC /* CNLiveMineQuestViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineQuestViewController.swift; sourceTree = "<group>"; };
140 7989B5C42A4BDC6000A19B10 /* CNLiveMineEarnViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineEarnViewController.swift; sourceTree = "<group>"; }; 144 7989B5C42A4BDC6000A19B10 /* CNLiveMineEarnViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineEarnViewController.swift; sourceTree = "<group>"; };
@@ -323,6 +327,8 @@ @@ -323,6 +327,8 @@
323 7989B5C42A4BDC6000A19B10 /* CNLiveMineEarnViewController.swift */, 327 7989B5C42A4BDC6000A19B10 /* CNLiveMineEarnViewController.swift */,
324 7989B5C62A4BDC7200A19B10 /* CNLiveMineEarnListViewController.swift */, 328 7989B5C62A4BDC7200A19B10 /* CNLiveMineEarnListViewController.swift */,
325 793CAF512A58FCA200882EF4 /* CNLiveMineExchangeViewController.swift */, 329 793CAF512A58FCA200882EF4 /* CNLiveMineExchangeViewController.swift */,
  330 + 79656E372AAEBA8E00119A61 /* CNLiveMineInputViewController.swift */,
  331 + 7905BB482AB0588B0089BC50 /* CNLiveMineAuthResultViewController.swift */,
326 ); 332 );
327 path = Controller; 333 path = Controller;
328 sourceTree = "<group>"; 334 sourceTree = "<group>";
@@ -878,6 +884,7 @@ @@ -878,6 +884,7 @@
878 7CD675402A2740B0008354C1 /* CNDownSlideView.swift in Sources */, 884 7CD675402A2740B0008354C1 /* CNDownSlideView.swift in Sources */,
879 7C2703362A3AFD3A0061EC50 /* CNLiveEnvironment.swift in Sources */, 885 7C2703362A3AFD3A0061EC50 /* CNLiveEnvironment.swift in Sources */,
880 798A44FD2A309EBA00815935 /* CNLiveTypeFeedBackViewController.swift in Sources */, 886 798A44FD2A309EBA00815935 /* CNLiveTypeFeedBackViewController.swift in Sources */,
  887 + 79656E382AAEBA8E00119A61 /* CNLiveMineInputViewController.swift in Sources */,
881 7CD6754F2A2840B9008354C1 /* CNMetaCodeHomePageController.swift in Sources */, 888 7CD6754F2A2840B9008354C1 /* CNMetaCodeHomePageController.swift in Sources */,
882 7989B5C52A4BDC6000A19B10 /* CNLiveMineEarnViewController.swift in Sources */, 889 7989B5C52A4BDC6000A19B10 /* CNLiveMineEarnViewController.swift in Sources */,
883 792E57DB2A3AE9F4005834DB /* CNLiveCommonQiniuTool.swift in Sources */, 890 792E57DB2A3AE9F4005834DB /* CNLiveCommonQiniuTool.swift in Sources */,
@@ -896,6 +903,7 @@ @@ -896,6 +903,7 @@
896 79396EED2A319F220053E1AF /* NSObject+CNLiveExtensions.swift in Sources */, 903 79396EED2A319F220053E1AF /* NSObject+CNLiveExtensions.swift in Sources */,
897 7C4931312A2F142F000E44B4 /* CNHomePageBackgroupView.swift in Sources */, 904 7C4931312A2F142F000E44B4 /* CNHomePageBackgroupView.swift in Sources */,
898 790D018B2A2D8B3300C5978D /* CNLiveLoginViewController.swift in Sources */, 905 790D018B2A2D8B3300C5978D /* CNLiveLoginViewController.swift in Sources */,
  906 + 7905BB492AB0588B0089BC50 /* CNLiveMineAuthResultViewController.swift in Sources */,
899 798A44EC2A302DBE00815935 /* CNLiveMineAddInfoViewController.swift in Sources */, 907 798A44EC2A302DBE00815935 /* CNLiveMineAddInfoViewController.swift in Sources */,
900 7CD675422A2740F8008354C1 /* CNCustomIndexView.swift in Sources */, 908 7CD675422A2740F8008354C1 /* CNCustomIndexView.swift in Sources */,
901 790D01912A2DAC5E00C5978D /* CNLiveConfigFontMacro.swift in Sources */, 909 790D01912A2DAC5E00C5978D /* CNLiveConfigFontMacro.swift in Sources */,
metaCode/Classes/Common/Base/CNLiveBaseViewController.swift
@@ -50,6 +50,19 @@ class CNLiveBaseViewController: UIViewController { @@ -50,6 +50,19 @@ class CNLiveBaseViewController: UIViewController {
50 } 50 }
51 } 51 }
52 52
  53 + public var _leftBtnWhite: Bool = false
  54 + public var leftBtnWhite: Bool {
  55 + get {
  56 + return _leftBtnWhite
  57 + }
  58 + set {
  59 + _leftBtnWhite = newValue
  60 + //先设置一个默认返回按钮
  61 + let leftBtn_array : Array<UIButton> = [UIButton.backItem(imageName: (_leftBtnWhite ? "mine_header_icon_white_back":"main_navi_left_icon_back"), target: self, action: #selector(ClickBackBtn))]
  62 + leftNavBtns = leftBtn_array
  63 + }
  64 + }
  65 +
53 /// //顶部导航内容(不带topLine)偏移量Y 初始值为0 66 /// //顶部导航内容(不带topLine)偏移量Y 初始值为0
54 public var _topNavViewSubUIContentOffsetY: CGFloat = 0.0 67 public var _topNavViewSubUIContentOffsetY: CGFloat = 0.0
55 public var topNavViewSubUIContentOffsetY: CGFloat { 68 public var topNavViewSubUIContentOffsetY: CGFloat {
@@ -199,9 +212,7 @@ class CNLiveBaseViewController: UIViewController { @@ -199,9 +212,7 @@ class CNLiveBaseViewController: UIViewController {
199 topNavView.addSubview(titleLabel) 212 topNavView.addSubview(titleLabel)
200 topNavView.addSubview(topLine) 213 topNavView.addSubview(topLine)
201 214
202 - //先设置一个默认返回按钮  
203 - let leftBtn_array : Array<UIButton> = [UIButton.backItem(imageName: "main_navi_left_icon_back", target: self, action: #selector(ClickBackBtn))]  
204 - leftNavBtns = leftBtn_array 215 + leftBtnWhite = false
205 } 216 }
206 217
207 @objc func ClickBackBtn() { 218 @objc func ClickBackBtn() {
metaCode/Classes/Config/Database/CNLiveIdentityDB.swift
@@ -12,7 +12,7 @@ import WCDBSwift @@ -12,7 +12,7 @@ import WCDBSwift
12 let CNLiveIdentityTableName = "CNLiveIdentityTable" 12 let CNLiveIdentityTableName = "CNLiveIdentityTable"
13 13
14 ///身份model 14 ///身份model
15 -class CNLiveIdentityModel: BaseModel,TableCodable { 15 +final class CNLiveIdentityModel: BaseModel,TableCodable {
16 var id: String = "" 16 var id: String = ""
17 var name: String? 17 var name: String?
18 var icon: String? 18 var icon: String?
metaCode/Classes/Extensions/NSObject+CNLiveExtensions.swift
@@ -94,7 +94,7 @@ func showMessage(message: String) { @@ -94,7 +94,7 @@ func showMessage(message: String) {
94 /// - Parameter message: 提示词 94 /// - Parameter message: 提示词
95 func showLoading(message: String) { 95 func showLoading(message: String) {
96 let delegate = UIApplication.shared.delegate as! AppDelegate 96 let delegate = UIApplication.shared.delegate as! AppDelegate
97 - 97 +
98 delegate.window?.subviews.forEach({ view in 98 delegate.window?.subviews.forEach({ view in
99 if view.isKind(of: MBProgressHUD.layerClass) { 99 if view.isKind(of: MBProgressHUD.layerClass) {
100 let hub = view as! MBProgressHUD 100 let hub = view as! MBProgressHUD
metaCode/Classes/Main/MinePage/Controller/CNLiveMineAddInfoViewController.swift
@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
7 7
8 import Foundation 8 import Foundation
9 import EmptyDataSet_Swift 9 import EmptyDataSet_Swift
  10 +import MJRefresh
10 11
11 enum CNLiveMineInfoShowType { 12 enum CNLiveMineInfoShowType {
12 case add//添加身份 13 case add//添加身份
@@ -39,13 +40,13 @@ class CNLiveMineAddInfoViewController : CNLiveBaseViewController, UITableViewDel @@ -39,13 +40,13 @@ class CNLiveMineAddInfoViewController : CNLiveBaseViewController, UITableViewDel
39 40
40 lazy var dataArray: NSMutableArray = { 41 lazy var dataArray: NSMutableArray = {
41 var dataArray = NSMutableArray() 42 var dataArray = NSMutableArray()
42 - if _show_type == .add {  
43 - dataArray.add(["image":"mine_header_icon_defult_ava","name":"志愿者身份"])  
44 - dataArray.add(["image":"mine_header_icon_defult_ava","name":"退伍军人身份"])  
45 - }  
46 if _show_type == .info { 43 if _show_type == .info {
47 dataArray.add(["image":"mine_header_icon_defult_ava","name":"志愿者身份","number":"证件编号:410800111127954"]) 44 dataArray.add(["image":"mine_header_icon_defult_ava","name":"志愿者身份","number":"证件编号:410800111127954"])
48 - dataArray.add(["image":"mine_header_icon_defult_ava","name":"退伍军人身份","number":"证件编号:410800111127954"]) 45 + dataArray.add(["image":"mine_header_icon_defult_ava","name":"退伍军人身份","number":"证件编号:410800111127912"])
  46 + dataArray.add(["image":"mine_header_icon_defult_ava","name":"退伍军人身份","number":"证件编号:410800111127934"])
  47 + dataArray.add(["image":"mine_header_icon_defult_ava","name":"退伍军人身份","number":"证件编号:410800111127956"])
  48 + dataArray.add(["image":"mine_header_icon_defult_ava","name":"退伍军人身份","number":"证件编号:410800111127967"])
  49 + dataArray.add(["image":"mine_header_icon_defult_ava","name":"退伍军人身份","number":"证件编号:410800111127978"])
49 } 50 }
50 return dataArray 51 return dataArray
51 }() 52 }()
@@ -75,13 +76,16 @@ class CNLiveMineAddInfoViewController : CNLiveBaseViewController, UITableViewDel @@ -75,13 +76,16 @@ class CNLiveMineAddInfoViewController : CNLiveBaseViewController, UITableViewDel
75 return copyButton 76 return copyButton
76 }() 77 }()
77 78
  79 + var pageNum: NSInteger
78 var network_type: CNLiveMineResponseType! 80 var network_type: CNLiveMineResponseType!
79 var _show_type:CNLiveMineInfoShowType! 81 var _show_type:CNLiveMineInfoShowType!
80 init(show_type:CNLiveMineInfoShowType) { 82 init(show_type:CNLiveMineInfoShowType) {
  83 + self.pageNum = 1
81 super.init(nibName:nil, bundle:nil) 84 super.init(nibName:nil, bundle:nil)
82 _show_type = show_type 85 _show_type = show_type
83 } 86 }
84 87
  88 +
85 required init?(coder: NSCoder) { 89 required init?(coder: NSCoder) {
86 fatalError("init(coder:) has not been implemented") 90 fatalError("init(coder:) has not been implemented")
87 } 91 }
@@ -96,14 +100,13 @@ class CNLiveMineAddInfoViewController : CNLiveBaseViewController, UITableViewDel @@ -96,14 +100,13 @@ class CNLiveMineAddInfoViewController : CNLiveBaseViewController, UITableViewDel
96 tableView.dragInteractionEnabled = true 100 tableView.dragInteractionEnabled = true
97 case .message: 101 case .message:
98 titleName = "消息中心" 102 titleName = "消息中心"
99 - loadData()  
100 // topNavView.addSubview(setButton) 103 // topNavView.addSubview(setButton)
101 // topNavView.addSubview(copyButton) 104 // topNavView.addSubview(copyButton)
102 -  
103 case .none: 105 case .none:
104 break 106 break
105 } 107 }
106 - 108 + loadData()
  109 + addRefreshView()
107 navigationBarHidden = false 110 navigationBarHidden = false
108 view.addSubview(tableView) 111 view.addSubview(tableView)
109 tableView.snp.makeConstraints { make in 112 tableView.snp.makeConstraints { make in
@@ -111,17 +114,58 @@ class CNLiveMineAddInfoViewController : CNLiveBaseViewController, UITableViewDel @@ -111,17 +114,58 @@ class CNLiveMineAddInfoViewController : CNLiveBaseViewController, UITableViewDel
111 make.left.right.bottom.equalToSuperview() 114 make.left.right.bottom.equalToSuperview()
112 } 115 }
113 } 116 }
  117 +
114 118
115 - func loadData() {  
116 - CNLiveMineViewModel.requestMessage { [weak self] result, respStatue in  
117 - self!.network_type = respStatue  
118 - if respStatue == .success {  
119 - self!.listArray = (result as! NewsModel).list  
120 - self!.tableView.reloadData()  
121 - }else{  
122 - self!.tableView.reloadEmptyDataSet() 119 + private func loadData() {
  120 + if _show_type == .add {
  121 + CNLiveMineViewModel.requestAuthStandList(page: self.pageNum) { [weak self] result, respStatue in
  122 + if respStatue == .success {
  123 + let listBaseModel = result as! StandListBaseModel
  124 + if listBaseModel.pageNum == 1 {
  125 + self!.dataArray.removeAllObjects()
  126 + self!.dataArray.addObjects(from: (result as! StandListBaseModel).list)
  127 + self!.tableView.reloadData()
  128 + self!.tableView.mj_header?.endRefreshing()
  129 + self!.tableView.mj_footer?.endRefreshing()
  130 + }
  131 + if listBaseModel.total == listBaseModel.pageNum {
  132 + self!.tableView.mj_footer?.endRefreshing()
  133 + self!.tableView.mj_footer?.endRefreshingWithNoMoreData()
  134 + self!.tableView.reloadData()
  135 + }
  136 + }else if (respStatue == .noNetwork) {
  137 + self!.network_type = .noNetwork
  138 + self!.tableView.reloadEmptyDataSet()
  139 + } else {
  140 + self!.network_type = .failed
  141 + self!.tableView.reloadEmptyDataSet()
  142 + }
123 } 143 }
124 } 144 }
  145 + if _show_type == .message {
  146 + CNLiveMineViewModel.requestMessage { [weak self] result, respStatue in
  147 + self!.network_type = respStatue
  148 + if respStatue == .success {
  149 + self!.listArray = (result as! NewsModel).list
  150 + self!.tableView.reloadData()
  151 + }else{
  152 + self!.tableView.reloadEmptyDataSet()
  153 + }
  154 + }
  155 + }
  156 + }
  157 +
  158 + private func addRefreshView() {
  159 + if _show_type == .add {
  160 + tableView.mj_header = MJRefreshNormalHeader.init(refreshingBlock: {[weak self] in
  161 + self!.pageNum = 1
  162 + self!.loadData()
  163 + })
  164 + tableView.mj_footer = MJRefreshFooter.init(refreshingBlock: {[weak self] in
  165 + self!.pageNum += 1
  166 + self!.loadData()
  167 + })
  168 + }
125 } 169 }
126 170
127 171
@@ -198,8 +242,8 @@ extension CNLiveMineAddInfoViewController { @@ -198,8 +242,8 @@ extension CNLiveMineAddInfoViewController {
198 guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveMineInfoLListTableViewIdentifier) as? MineInfoLListTableViewCell else { 242 guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveMineInfoLListTableViewIdentifier) as? MineInfoLListTableViewCell else {
199 return MineInfoLListTableViewCell() 243 return MineInfoLListTableViewCell()
200 } 244 }
201 - let dict = dataArray[indexPath.row] as! Dictionary<String, Any>  
202 - cell.setupWithDataSource(icon: dict["image"] as! String, name: dict["name"] as! String) 245 + let listModel = dataArray[indexPath.row] as! StandListModel
  246 + cell.setupWithDataSource(icon: listModel.icon!, name: listModel.name!, is_auth: listModel.auth)
203 cell.userInteractionEnabledWhileDragging = true 247 cell.userInteractionEnabledWhileDragging = true
204 return cell 248 return cell
205 249
@@ -226,6 +270,14 @@ extension CNLiveMineAddInfoViewController { @@ -226,6 +270,14 @@ extension CNLiveMineAddInfoViewController {
226 let listModel = listArray[indexPath.row] 270 let listModel = listArray[indexPath.row]
227 self.navigationController?.pushViewController(CNLiveMineMessageViewController.init(listModel: listModel), animated: true) 271 self.navigationController?.pushViewController(CNLiveMineMessageViewController.init(listModel: listModel), animated: true)
228 } 272 }
  273 + if _show_type == .add {
  274 + let listModel = dataArray[indexPath.row] as! StandListModel
  275 + if listModel.auth {
  276 + showMessage(message: "您已添加此身份,请直接使用")
  277 + return
  278 + }
  279 + self.navigationController?.pushViewController(CNLiveMineInputViewController.init(listModel: listModel), animated: true)
  280 + }
229 } 281 }
230 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 282 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
231 return 100 283 return 100
@@ -247,6 +299,9 @@ extension CNLiveMineAddInfoViewController { @@ -247,6 +299,9 @@ extension CNLiveMineAddInfoViewController {
247 func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, 299 func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath,
248 to destinationIndexPath: IndexPath) { 300 to destinationIndexPath: IndexPath) {
249 objc_sync_enter(self) 301 objc_sync_enter(self)
  302 + print("交换之前===>\(dataArray)")
  303 + swap(&dataArray[sourceIndexPath.row], &dataArray[destinationIndexPath.row])
  304 + print("交换之后===>\(dataArray)")
250 // let dict: Dictionary = dataArray[sourceIndexPath.row] as! Dictionary<String, Any> 305 // let dict: Dictionary = dataArray[sourceIndexPath.row] as! Dictionary<String, Any>
251 // dataArray.remove(sourceIndexPath.row) 306 // dataArray.remove(sourceIndexPath.row)
252 // if destinationIndexPath.row > dataArray.count { 307 // if destinationIndexPath.row > dataArray.count {
metaCode/Classes/Main/MinePage/Controller/CNLiveMineAuthResultViewController.swift 0 → 100644
  1 +//
  2 +// CNLiveMineAuthResultViewController.swift
  3 +// metaCode
  4 +//
  5 +// Created by open on 2023/9/12.
  6 +//
  7 +
  8 +import Foundation
  9 +
  10 +
  11 +class CNLiveMineAuthResultViewController: CNLiveBaseViewController {
  12 +
  13 + lazy var mainView: UIImageView = {
  14 + let mainView = UIImageView()
  15 + mainView.backgroundColor = .white
  16 + mainView.contentMode = .scaleToFill
  17 + mainView.image = UIImage(named: "mIne_auth_result_header_icon")
  18 + return mainView
  19 + }()
  20 +
  21 + lazy var tipName: UILabel = {
  22 + let tipName = UILabel.init()
  23 + tipName.text = "资料审核中"
  24 + tipName.font = BoldFont_18_Fit
  25 + tipName.textAlignment = .center
  26 + tipName.textColor = .black
  27 + return tipName
  28 + }()
  29 +
  30 + lazy var tipDesc: UILabel = {
  31 + let tipDesc = UILabel.init()
  32 + tipDesc.text = "请耐心等待,预计一分钟之内完成审核"
  33 + tipDesc.textColor = HexColor("#A9A9A9")
  34 + tipDesc.textAlignment = .center
  35 + tipDesc.font = Font_13
  36 + return tipDesc
  37 + }()
  38 +
  39 + lazy var sendButton: UIButton = {
  40 + let sendButton = UIButton(type: .custom)
  41 + sendButton.setTitle("确 定", for: .normal)
  42 + sendButton.setTitleColor(.white, for: .normal)
  43 + sendButton.titleLabel?.font = BoldFont_16_Fit
  44 + sendButton.layer.cornerRadius = 20
  45 + sendButton.layer.masksToBounds = true
  46 + sendButton.addTarget(self, action: #selector(sendInfoActionMothod), for: .touchUpInside)
  47 + return sendButton
  48 + }()
  49 +
  50 + var _listModel:StandListModel!
  51 + init(listModel:StandListModel) {
  52 + super.init(nibName:nil, bundle:nil)
  53 + _listModel = listModel
  54 + }
  55 +
  56 + required init?(coder: NSCoder) {
  57 + fatalError("init(coder:) has not been implemented")
  58 + }
  59 +
  60 + override func viewWillAppear(_ animated: Bool) {
  61 + super.viewWillAppear(animated)
  62 +
  63 + }
  64 +
  65 + override func viewDidLoad() {
  66 + super.viewDidLoad()
  67 +
  68 + navigationBarHidden = false
  69 + view.backgroundColor = .white
  70 + topNavView.backgroundColor = .clear
  71 + titleName = "添加\(_listModel.name!)"
  72 + titleLabel.textColor = .white
  73 + leftBtnWhite = true
  74 + setNeedsStatusBarAppearanceUpdate()
  75 +
  76 +
  77 + view.insertSubview(mainView, belowSubview: topNavView)
  78 + mainView.snp.makeConstraints { make in
  79 + make.left.top.right.equalToSuperview()
  80 + make.height.equalTo(346)
  81 + }
  82 + view.addSubview(tipName)
  83 + tipName.snp.makeConstraints { make in
  84 + make.centerX.equalToSuperview()
  85 + make.top.equalTo(mainView.snp.bottom).offset(20)
  86 + }
  87 +
  88 + view.addSubview(tipDesc)
  89 + tipDesc.snp.makeConstraints { make in
  90 + make.centerX.equalToSuperview()
  91 + make.top.equalTo(tipName.snp.bottom).offset(10)
  92 + }
  93 +
  94 + view.addSubview(sendButton)
  95 + sendButton.snp.makeConstraints { make in
  96 + make.centerX.equalToSuperview()
  97 + make.top.equalTo(tipDesc.snp.bottom).offset(50)
  98 + make.height.equalTo(40)
  99 + make.width.equalTo(150)
  100 + }
  101 + sendButton.setGradient(colors: [UIColor(red: 103/255.0, green: 197/255.0, blue: 255/255.0, alpha: 1),UIColor(red: 96/255.0, green: 154/255.0, blue: 255/255.0, alpha: 1)], startPoint: CGPoint(x: 0, y: 0.5), endPoint: CGPoint(x: 1, y: 0.5))
  102 + }
  103 +
  104 +
  105 + override var preferredStatusBarStyle: UIStatusBarStyle {
  106 + return .lightContent
  107 + }
  108 +
  109 + @objc func sendInfoActionMothod() {
  110 +
  111 + }
  112 +}
metaCode/Classes/Main/MinePage/Controller/CNLiveMineInputViewController.swift 0 → 100644
  1 +//
  2 +// CNLiveMineInputViewController.swift
  3 +// metaCode
  4 +//
  5 +// Created by open on 2023/9/11.
  6 +//
  7 +
  8 +import Foundation
  9 +import EmptyDataSet_Swift
  10 +
  11 +class CNLiveMineInputViewController : CNLiveBaseViewController, UITableViewDelegate, UITableViewDataSource, EmptyDataSetSource, EmptyDataSetDelegate{
  12 +
  13 + let kMineBodyInputAuthCellIdentifier = "kMineBodyInputAuthCellIdentifier"
  14 + lazy var tableView: UITableView = {
  15 + let tableView = UITableView(frame: .zero, style: .plain)
  16 + tableView.delegate = self
  17 + tableView.dataSource = self
  18 + tableView.emptyDataSetSource = self
  19 + tableView.emptyDataSetDelegate = self
  20 + tableView.backgroundColor = HexColor("#F7F8FA")
  21 + tableView.tableFooterView = UIView.init()
  22 + tableView.contentInsetAdjustmentBehavior = .scrollableAxes
  23 + tableView.separatorStyle = .none
  24 + tableView.register(MineBodyInputAuthCell.self, forCellReuseIdentifier: kMineBodyInputAuthCellIdentifier)
  25 + return tableView
  26 + }()
  27 +
  28 + lazy var sendButton: UIButton = {
  29 + let sendButton = UIButton(type: .custom)
  30 + sendButton.setTitle("添加身份", for: .normal)
  31 + sendButton.setTitleColor(.white, for: .normal)
  32 + sendButton.titleLabel?.font = BoldFont_16_Fit
  33 + sendButton.layer.cornerRadius = 20
  34 + sendButton.layer.masksToBounds = true
  35 + sendButton.isHidden = true
  36 + sendButton.addTarget(self, action: #selector(sendInfoActionMothod), for: .touchUpInside)
  37 + return sendButton
  38 + }()
  39 +
  40 + lazy var dataArray: NSMutableArray = {
  41 + return NSMutableArray.init()
  42 + }()
  43 +
  44 + var _listModel:StandListModel!
  45 + init(listModel:StandListModel) {
  46 + super.init(nibName:nil, bundle:nil)
  47 + _listModel = listModel
  48 + }
  49 +
  50 + required init?(coder: NSCoder) {
  51 + fatalError("init(coder:) has not been implemented")
  52 + }
  53 +
  54 + override func viewDidLoad() {
  55 + super.viewDidLoad()
  56 +
  57 + navigationBarHidden = false
  58 + titleName = _listModel.name ?? ""
  59 + view.backgroundColor = HexColor("#F7F8FA")
  60 +
  61 + loadStandInfoData()
  62 +
  63 + view.addSubview(sendButton)
  64 + sendButton.snp.makeConstraints { make in
  65 + make.bottom.equalToSuperview().offset(-get_system_tabbar_ui_offsetHeight() - 20)
  66 + make.left.equalToSuperview().offset(10)
  67 + make.right.equalToSuperview().offset(-10)
  68 + make.height.equalTo(40)
  69 + }
  70 + setupWithSendBtnStatue(statue: false)
  71 +
  72 + view.addSubview(tableView)
  73 + tableView.snp.makeConstraints { make in
  74 + make.top.equalTo(get_system_nav_height())
  75 + make.left.right.equalToSuperview()
  76 + make.bottom.equalTo(sendButton.snp.top).offset(-10)
  77 + }
  78 + }
  79 +
  80 + private func loadStandInfoData() {
  81 + CNLiveMineViewModel.requestsStandInfo(identityId: "\(_listModel.id)") {[weak self] result, respStatue in
  82 + if respStatue == .success {
  83 + self?.dataArray.addObjects(from: result as! [Any])
  84 + self?.tableView.reloadData()
  85 + if (self?.dataArray.count)! > 0 {
  86 + self?.sendButton.isHidden = false
  87 + self?.tableView.tableHeaderView = self?.setupHeaderAndFooter(is_last: false)
  88 + self?.tableView.tableFooterView = self?.setupHeaderAndFooter(is_last: true)
  89 + }
  90 + }
  91 + }
  92 + }
  93 +
  94 + private func setupWithSendBtnStatue(statue: Bool) {
  95 + var alpha = 0.3
  96 + if statue {
  97 + alpha = 1
  98 + }
  99 + sendButton.setGradient(colors: [UIColor(red: 103/255.0, green: 197/255.0, blue: 255/255.0, alpha: alpha),UIColor(red: 96/255.0, green: 154/255.0, blue: 255/255.0, alpha: alpha)], startPoint: CGPoint(x: 0, y: 0.5), endPoint: CGPoint(x: 1, y: 0.5))
  100 + sendButton.isUserInteractionEnabled = statue
  101 + }
  102 +
  103 + @objc func sendInfoActionMothod() {
  104 +
  105 + CNLiveMineViewModel.requestsPOSTAuthInfo(identityId: "\(_listModel.id)", infos: self.dataArray) { [self] result, respStatue in
  106 + if respStatue == .success {
  107 + showMessage(message: "上传成功")
  108 + DispatchQueue.main.asyncAfter(deadline: .now()+1) { [self] in
  109 + self.navigationController?.pushViewController(CNLiveMineAuthResultViewController.init(listModel: _listModel), animated: true)
  110 + }
  111 + }
  112 + }
  113 + }
  114 +
  115 +
  116 + func setupHeaderAndFooter(is_last: Bool) -> UIView {
  117 + let mainView = UIView.init(frame: CGRect(x: 0, y: 0, width: Int(KSreenWidth), height: 10));
  118 + mainView.backgroundColor = .clear
  119 + let v = UIView.init(frame: CGRect(x: 10, y: 0, width: Int(KSreenWidth) - 20, height: 10))
  120 + v.backgroundColor = .white
  121 + if !is_last {
  122 + v.addCorner(conrners: [.topLeft, .topRight], radius: 10)
  123 + } else {
  124 + v.addCorner(conrners: [.bottomLeft, .bottomRight], radius: 10)
  125 + }
  126 + mainView.addSubview(v)
  127 + return mainView
  128 + }
  129 +
  130 +}
  131 +
  132 +extension CNLiveMineInputViewController {
  133 +
  134 + func numberOfSections(in tableView: UITableView) -> Int {
  135 + return 1
  136 + }
  137 +
  138 + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  139 + return self.dataArray.count
  140 + }
  141 +
  142 + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  143 +
  144 + let cell = tableView.dequeueReusableCell(withIdentifier: kMineBodyInputAuthCellIdentifier) as! MineBodyInputAuthCell
  145 + cell.setListModel(infoModel: self.dataArray[indexPath.row] as! MineStandInfoModel, is_last: indexPath.row == self.dataArray.count - 1) { [weak self] in
  146 + let is_result = self?.inspectResult()
  147 + self?.setupWithSendBtnStatue(statue: is_result ?? true)
  148 + }
  149 + return cell
  150 + }
  151 +
  152 + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
  153 + return 50
  154 + }
  155 +
  156 + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  157 + let infoModel = self.dataArray[indexPath.row] as! MineStandInfoModel
  158 + if infoModel.children.count > 0 {
  159 + self.view.endEditing(true)
  160 + DispatchQueue.main.asyncAfter(deadline: .now()+0.5) {
  161 + MineStandListAlertView.showStandListView(infos: infoModel.children as NSArray,name: "选择\(infoModel.name ?? "")") {[weak self] text in
  162 + infoModel.value = text
  163 + self?.tableView.reloadData()
  164 + let is_result = self?.inspectResult()
  165 + self?.setupWithSendBtnStatue(statue: is_result ?? true)
  166 + }
  167 + }
  168 + }
  169 + }
  170 +
  171 + private func inspectResult() -> Bool {
  172 + var is_result: Bool = true
  173 + for item in self.dataArray {
  174 + let listModel = item as! MineStandInfoModel
  175 + if (listModel.nonEmpty && listModel.value?.count == 0) {
  176 + is_result = false
  177 + }
  178 + }
  179 + return is_result
  180 + }
  181 +}
metaCode/Classes/Main/MinePage/View/CNLiveMineBodyListView.swift
@@ -613,5 +613,136 @@ class MIneBodyFiveViewCell: UITableViewCell { @@ -613,5 +613,136 @@ class MIneBodyFiveViewCell: UITableViewCell {
613 required init?(coder: NSCoder) { 613 required init?(coder: NSCoder) {
614 fatalError("init(coder:) has not been implemented") 614 fatalError("init(coder:) has not been implemented")
615 } 615 }
  616 +}
  617 +
  618 +typealias resultInputBlock = () -> Void
  619 +class MineBodyInputAuthCell: UITableViewCell, UITextFieldDelegate {
616 620
  621 + lazy var mainView: UIView = {
  622 + let mainView = UIView.init(frame: CGRect.zero)
  623 + mainView.backgroundColor = .white
  624 + return mainView
  625 + }()
  626 +
  627 + lazy var nameLabel: UILabel = {
  628 + let nameLabel = UILabel.init()
  629 + nameLabel.textColor = HexColor("#333333")
  630 + nameLabel.font = BoldFont_16_Fit
  631 + nameLabel.backgroundColor = .white
  632 + return nameLabel
  633 + }()
  634 +
  635 + lazy var contentField: UITextField = {
  636 + let contentField = UITextField.init()
  637 + contentField.backgroundColor = .white
  638 + contentField.font = BoldFont_15_Fit
  639 + contentField.textColor = HexColor("#333333")
  640 + contentField.clearButtonMode = .whileEditing
  641 + contentField.textAlignment = .right
  642 + contentField.delegate = self
  643 + return contentField
  644 + }()
  645 +
  646 + lazy var moreBtn: UIButton = {
  647 + let moreBtn = UIButton.init(type: .custom)
  648 + moreBtn.setImage(UIImage(named: "mine_header_message_gray_more"), for: .normal)
  649 + moreBtn.layer.masksToBounds = true
  650 + moreBtn.layer.cornerRadius = 15
  651 + moreBtn.isHidden = true
  652 + return moreBtn
  653 + }()
  654 +
  655 + lazy var line_label: UILabel = {
  656 + let lineLabel = UILabel.init()
  657 + lineLabel.backgroundColor = HexColor("#f3f3f3")
  658 + return lineLabel
  659 + }()
  660 +
  661 +
  662 + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
  663 + super.init(style: style, reuseIdentifier: reuseIdentifier)
  664 + selectionStyle = .none
  665 + backgroundColor = .clear
  666 +
  667 + addSubview(mainView)
  668 + mainView.addSubview(nameLabel)
  669 + mainView.addSubview(moreBtn)
  670 + mainView.addSubview(contentField)
  671 + mainView.addSubview(moreBtn)
  672 + mainView.addSubview(line_label)
  673 + setConstrainta()
  674 + }
  675 +
  676 + required init?(coder: NSCoder) {
  677 + fatalError("init(coder:) has not been implemented")
  678 + }
  679 +
  680 + func contentAction() {
  681 +
  682 + }
  683 +
  684 + fileprivate var _infoModel : MineStandInfoModel?
  685 + fileprivate var _resultInputBlock : resultInputBlock?
  686 + func setListModel(infoModel: MineStandInfoModel, is_last: Bool,resultInputBlock: @escaping resultInputBlock) {
  687 + _infoModel = infoModel
  688 + _resultInputBlock = resultInputBlock
  689 + nameLabel.text = infoModel.name
  690 + if (infoModel.value ?? "").count > 0 {
  691 + contentField.text = infoModel.value
  692 + }
  693 + contentField.placeholder = "请输入\(infoModel.name ?? "")"
  694 + line_label.isHidden = is_last
  695 + if infoModel.inputType == 2 {
  696 + contentField.keyboardType = .numberPad
  697 + } else if (infoModel.inputType == 1) {
  698 + contentField.keyboardType = .default
  699 + } else if (infoModel.inputType == 3 && infoModel.children.count > 0) {//禁止输入 显示下拉选择
  700 + contentField.isUserInteractionEnabled = false
  701 + moreBtn.isHidden = false
  702 + contentField.snp.remakeConstraints { make in
  703 + make.centerY.equalToSuperview()
  704 + make.right.equalTo(moreBtn.snp.left)
  705 + }
  706 + }
  707 + }
  708 +
  709 + func setConstrainta() {
  710 + mainView.snp.makeConstraints { make in
  711 + make.top.equalToSuperview()
  712 + make.bottom.equalToSuperview()
  713 + make.left.equalToSuperview().offset(10)
  714 + make.right.equalToSuperview().offset(-10)
  715 + }
  716 + nameLabel.snp.makeConstraints { make in
  717 + make.centerY.equalToSuperview()
  718 + make.left.equalToSuperview().offset(15)
  719 + }
  720 + moreBtn.snp.makeConstraints { make in
  721 + make.centerY.equalToSuperview()
  722 + make.right.equalToSuperview().offset(-8)
  723 + }
  724 + contentField.snp.makeConstraints { make in
  725 + make.centerY.equalToSuperview()
  726 + make.right.equalToSuperview().offset(-10)
  727 + }
  728 + moreBtn.snp.makeConstraints { make in
  729 + make.centerY.equalToSuperview()
  730 + make.right.equalToSuperview().offset(-5)
  731 + }
  732 + line_label.snp.makeConstraints { make in
  733 + make.centerX.equalToSuperview()
  734 + make.bottom.equalToSuperview().offset(-1)
  735 + make.width.equalTo(Int(KSreenWidth) - 40)
  736 + make.height.equalTo(0.5)
  737 + }
  738 + }
  739 +
  740 + func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
  741 + return contentField.resignFirstResponder()
  742 + }
  743 +
  744 + func textFieldDidEndEditing(_ textField: UITextField) {
  745 + _infoModel?.value = textField.text ?? ""
  746 + _resultInputBlock!()
  747 + }
617 } 748 }
metaCode/Classes/Main/MinePage/View/CNLiveMineInfoAlertView.swift
@@ -543,5 +543,180 @@ class UpdataAlertView: UIView { @@ -543,5 +543,180 @@ class UpdataAlertView: UIView {
543 ConfigManager.shared.show_update = false 543 ConfigManager.shared.show_update = false
544 removeFromSuperview() 544 removeFromSuperview()
545 } 545 }
  546 +}
  547 +
  548 +class MineStandListAlertView: UIView, UIPickerViewDelegate, UIPickerViewDataSource {
  549 +
  550 + lazy var tapGesture = UITapGestureRecognizer()
  551 + lazy var grayMaskView: UIView = {
  552 + let grayMaskView = UIView()
  553 + tapGesture.addTarget(self, action: #selector(setupCloseButtonAction))
  554 + grayMaskView.backgroundColor = UIColor.black.withAlphaComponent(0.2)
  555 + grayMaskView.addGestureRecognizer(tapGesture)
  556 + return grayMaskView
  557 + }()
  558 +
  559 + lazy var backView: UIView = {
  560 + let backView = UIView()
  561 + backView.backgroundColor = UIColor.white
  562 + backView.layer.cornerRadius = 12
  563 + return backView
  564 + }()
546 565
  566 + lazy var pickerView: UIPickerView = {
  567 + let pickerView = UIPickerView.init()
  568 + pickerView.backgroundColor = .white
  569 + pickerView.delegate = self
  570 + pickerView.dataSource = self
  571 + return pickerView
  572 + }()
  573 +
  574 + lazy var nameLable : UILabel = {
  575 + let nameLable = UILabel.init()
  576 + nameLable.backgroundColor = .white
  577 + nameLable.font = BoldFont_16_Fit
  578 + nameLable.textAlignment = .center
  579 + nameLable.textColor = .black
  580 + return nameLable
  581 + }()
  582 +
  583 + lazy var lineLable : UILabel = {
  584 + let lineLable = UILabel.init()
  585 + lineLable.backgroundColor = HexColor("#E6E6E6")
  586 + return lineLable
  587 + }()
  588 +
  589 + lazy var doneButton : UIButton = {
  590 + let doneButton = UIButton(type: .custom)
  591 + doneButton.setTitle("确定", for: .normal)
  592 + doneButton.setTitleColor(HexColor("#0066FE"), for: .normal)
  593 + doneButton.titleLabel?.font = Font_16
  594 + doneButton.addTarget(self, action: #selector(setupDoneButtonAction), for: .touchUpInside)
  595 + return doneButton
  596 + }()
  597 +
  598 + lazy var closeButton : UIButton = {
  599 + let closeButton = UIButton(type: .custom)
  600 + closeButton.setTitle("取消", for: .normal)
  601 + closeButton.setTitleColor(HexColor("#B4B4B4"), for: .normal)
  602 + closeButton.titleLabel?.font = Font_16
  603 + closeButton.addTarget(self, action: #selector(setupCloseButtonAction), for: .touchUpInside)
  604 + return closeButton
  605 + }()
  606 +
  607 + var text: String?
  608 + var result: CloseGenderResultBlock?
  609 + var _infos: NSArray?
  610 + init(frame: CGRect, infos: NSArray) {
  611 + super.init(frame: frame)
  612 +
  613 + _infos = infos
  614 + text = (infos.firstObject as! MineStandInfoModel).name
  615 +
  616 + addSubview(grayMaskView)
  617 + addSubview(backView)
  618 + backView.addSubview(pickerView)
  619 + backView.addSubview(nameLable)
  620 + backView.addSubview(lineLable)
  621 + backView.addSubview(closeButton)
  622 + backView.addSubview(doneButton)
  623 + setConstraints()
  624 + }
  625 +
  626 + func setConstraints() {
  627 + grayMaskView.snp.makeConstraints { make in
  628 + make.edges.equalToSuperview()
  629 + }
  630 + backView.snp.makeConstraints { make in
  631 + make.top.equalTo(self.snp.bottom).offset(0)
  632 + make.left.right.equalToSuperview()
  633 + make.height.equalTo(250)
  634 + }
  635 + doneButton.snp.makeConstraints { make in
  636 + make.right.equalToSuperview()
  637 + make.top.equalTo(10)
  638 + make.height.equalTo(30)
  639 + make.width.equalTo(60)
  640 + }
  641 + closeButton.snp.makeConstraints { make in
  642 + make.centerY.equalTo(doneButton)
  643 + make.left.equalTo(8)
  644 + make.height.equalTo(30)
  645 + make.width.equalTo(60)
  646 + }
  647 + nameLable.snp.makeConstraints { make in
  648 + make.centerY.equalTo(doneButton)
  649 + make.centerX.equalToSuperview()
  650 + }
  651 + lineLable.snp.makeConstraints { make in
  652 + make.left.right.equalToSuperview()
  653 + make.height.equalTo(1)
  654 + make.top.equalTo(doneButton.snp.bottom).offset(10)
  655 + }
  656 + pickerView.snp.makeConstraints { make in
  657 + make.bottom.equalToSuperview()
  658 + make.left.right.equalToSuperview()
  659 + make.top.equalTo(lineLable.snp.bottom)
  660 + }
  661 + }
  662 +
  663 + static public func showStandListView(infos: NSArray, name: String, result: @escaping CloseGenderResultBlock) {
  664 + let pickerView = MineStandListAlertView.init(frame: .zero, infos: infos)
  665 + pickerView.result = result
  666 + pickerView.nameLable.text = name
  667 + let window = UIApplication.shared.windows.last
  668 + window?.addSubview(pickerView)
  669 + pickerView.snp.makeConstraints { make in
  670 + make.edges.equalToSuperview()
  671 + }
  672 + window?.layoutIfNeeded()
  673 + pickerView.alpha = 0
  674 + UIView.animate(withDuration: 0.1) {
  675 + pickerView.alpha = 1
  676 + } completion: { _ in
  677 + UIView.animate(withDuration: 0.1) {
  678 + pickerView.backView.snp.updateConstraints { make in
  679 + make.top.equalTo(pickerView.snp.bottom).offset(-pickerView.backView.frame.height)
  680 + }
  681 + pickerView.layoutIfNeeded()
  682 + }
  683 + }
  684 + }
  685 +
  686 + func numberOfComponents(in pickerView: UIPickerView) -> Int {
  687 + return 1
  688 + }
  689 +
  690 + func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
  691 + return _infos?.count ?? 0
  692 + }
  693 +
  694 + func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
  695 + let infoModel = _infos![row] as! MineStandInfoModel
  696 + return infoModel.name
  697 + }
  698 +
  699 + func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {
  700 + return 45.0
  701 + }
  702 +
  703 + func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
  704 + let infoModel = _infos![row] as! MineStandInfoModel
  705 + text = infoModel.name ?? ""
  706 + }
  707 +
  708 + required init?(coder: NSCoder) {
  709 + fatalError("init(coder:) has not been implemented")
  710 + }
  711 +
  712 + @objc func setupCloseButtonAction() -> Void {
  713 + removeFromSuperview()
  714 + }
  715 +
  716 + @objc func setupDoneButtonAction() -> Void {
  717 + removeFromSuperview()
  718 + if (result != nil) {
  719 + result!(text ?? "")
  720 + }
  721 + }
547 } 722 }
metaCode/Classes/Main/MinePage/View/CNLiveMineSubBodyListView.swift
@@ -32,6 +32,7 @@ class MineInfoLListTableViewCell : UITableViewCell { @@ -32,6 +32,7 @@ class MineInfoLListTableViewCell : UITableViewCell {
32 titleLabel.backgroundColor = .clear 32 titleLabel.backgroundColor = .clear
33 titleLabel.textColor = .black 33 titleLabel.textColor = .black
34 titleLabel.font = BoldFont_18_Fit 34 titleLabel.font = BoldFont_18_Fit
  35 + titleLabel.minimumScaleFactor = 14*FontFit
35 return titleLabel 36 return titleLabel
36 }() 37 }()
37 38
@@ -43,12 +44,23 @@ class MineInfoLListTableViewCell : UITableViewCell { @@ -43,12 +44,23 @@ class MineInfoLListTableViewCell : UITableViewCell {
43 addBtn.titleLabel?.font = BoldFont_15 44 addBtn.titleLabel?.font = BoldFont_15
44 addBtn.layer.cornerRadius = 15 45 addBtn.layer.cornerRadius = 15
45 addBtn.layer.masksToBounds = true 46 addBtn.layer.masksToBounds = true
  47 + addBtn.isUserInteractionEnabled = false
46 return addBtn 48 return addBtn
47 }() 49 }()
48 50
49 - public func setupWithDataSource(icon: String, name: String) {  
50 - iconView.image = UIImage(named: icon) 51 + public func setupWithDataSource(icon: String, name: String, is_auth: Bool) {
  52 + iconView.kf.indicatorType = .activity
  53 + iconView.kf.setImage(with: URL(string: icon), placeholder: UIImage.imageWithColor(color: HexColor("0xf9f9f9")!, size: CGSize(width: 50, height: 50)))
51 titleLabel.text = name 54 titleLabel.text = name
  55 + if is_auth {
  56 + addBtn.backgroundColor = HexColor("#DCDCDC")
  57 + addBtn.setTitleColor(HexColor("#666666"), for: .normal)
  58 + addBtn.setTitle(" 已添加 ", for: .normal)
  59 + }else {
  60 + addBtn.backgroundColor = HexColor("#67C5FF")
  61 + addBtn.setTitleColor(.white, for: .normal)
  62 + addBtn.setTitle(" 去添加 ", for: .normal)
  63 + }
52 } 64 }
53 65
54 override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { 66 override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
@@ -76,16 +88,17 @@ class MineInfoLListTableViewCell : UITableViewCell { @@ -76,16 +88,17 @@ class MineInfoLListTableViewCell : UITableViewCell {
76 make.left.equalToSuperview().offset(15) 88 make.left.equalToSuperview().offset(15)
77 make.size.equalTo(50) 89 make.size.equalTo(50)
78 } 90 }
79 - titleLabel.snp.makeConstraints { make in  
80 - make.centerY.equalToSuperview()  
81 - make.left.equalTo(iconView.snp.right).offset(10)  
82 - }  
83 addBtn.snp.makeConstraints { make in 91 addBtn.snp.makeConstraints { make in
84 make.centerY.equalToSuperview() 92 make.centerY.equalToSuperview()
85 make.right.equalToSuperview().offset(-15) 93 make.right.equalToSuperview().offset(-15)
86 make.width.equalTo(80) 94 make.width.equalTo(80)
87 make.height.equalTo(30) 95 make.height.equalTo(30)
88 } 96 }
  97 + titleLabel.snp.makeConstraints { make in
  98 + make.centerY.equalToSuperview()
  99 + make.left.equalTo(iconView.snp.right).offset(10)
  100 + make.right.equalTo(addBtn.snp.left).offset(5)
  101 + }
89 } 102 }
90 103
91 required init?(coder: NSCoder) { 104 required init?(coder: NSCoder) {
metaCode/Classes/Main/MinePage/ViewModel/CNLiveMineBaseModel.swift
@@ -109,3 +109,77 @@ class NewsListModel: BaseModel { @@ -109,3 +109,77 @@ class NewsListModel: BaseModel {
109 // }) 109 // })
110 } 110 }
111 } 111 }
  112 +
  113 +class StandListBaseModel: BaseModel {
  114 + var prePage: Int = 0
  115 + var pageSize: Int = 0
  116 + var startRow: Int = 0
  117 + var navigateLastPage: Int = 0
  118 + var firstPage: Int = 0
  119 + var nextPage: Int = 0
  120 + var size: Int = 0
  121 + var endRow: Int = 0
  122 + var isLastPage: Bool = false
  123 + var hasNextPage: Bool = false
  124 + var navigateFirstPage: Int = 0
  125 + var lastPage: Int = 0
  126 + var total: Int = 0
  127 + var list = [StandListModel]()
  128 + var navigatepageNums = [Int]()
  129 + var isFirstPage: Bool = false
  130 + var hasPreviousPage: Bool = false
  131 + var navigatePages: Int = 0
  132 + var pageNum: Int = 0
  133 + var pages: Int = 0
  134 +}
  135 +
  136 +class StandListModel: BaseModel {
  137 +
  138 + var icon: String?
  139 + var name: String?
  140 + var enable: Bool = false
  141 + var id: Int = 0
  142 + var createTime: Int = 0
  143 + var createTimeString: String = ""
  144 + var timeString: String = ""
  145 + var auth: Bool = false
  146 +
  147 + override func mapping(mapper: HelpingMapper) {
  148 + mapper <<<
  149 + self.createTime <-- TransformOf(fromJSON: { [weak self] (raw) -> Int in
  150 + if (raw ?? 0)! > 0 {
  151 + let date = NSDate(timeIntervalSince1970: TimeInterval((raw!)/1000))
  152 + let dateFormatter = DateFormatter()
  153 + dateFormatter.locale = Locale.init(identifier: "zh_CN")
  154 + dateFormatter.dateFormat = "MM-dd"
  155 + self?.createTimeString = dateFormatter.string(from: date as Date)
  156 + let dateFormatter_time = DateFormatter()
  157 + dateFormatter_time.locale = Locale.init(identifier: "zh_CN")
  158 + dateFormatter_time.dateFormat = "yyyy年MM月dd日 HH:mm"
  159 + self?.timeString = dateFormatter_time.string(from: date as Date)
  160 + }
  161 + return raw!
  162 + }, toJSON: { (tuple) -> Int? in
  163 + return tuple
  164 + })
  165 + }
  166 +}
  167 +
  168 +class MineStandInfoBaseModel: BaseModel {
  169 + var authInfos = [MineStandInfoModel]()
  170 + var icon: String?
  171 + var name: String?
  172 + var identityId: Int = 0
  173 +}
  174 +
  175 +class MineStandInfoModel: BaseModel {
  176 + var authInfoId: Int = 0
  177 + var name: String?
  178 + var inputType: Int = 0//1 文本输入 2数字输入 3下拉选择 4后台生成时间 5后台生成编码
  179 + var sort: Int = 0
  180 + var nonEmpty: Bool = false
  181 + var input: Bool = false
  182 + var show: Bool = false
  183 + var value: String? = ""//自己定义的值
  184 + var children = [MineStandInfoModel]()
  185 +}
metaCode/Classes/Main/MinePage/ViewModel/CNLiveMineViewModel.swift
@@ -7,6 +7,8 @@ @@ -7,6 +7,8 @@
7 7
8 import Foundation 8 import Foundation
9 import CNLiveRequestBastKit 9 import CNLiveRequestBastKit
  10 +import HandyJSON
  11 +import AFNetworking
10 12
11 enum CNLiveMineRequestType { 13 enum CNLiveMineRequestType {
12 case icon 14 case icon
@@ -241,6 +243,143 @@ class CNLiveMineViewModel: NSObject { @@ -241,6 +243,143 @@ class CNLiveMineViewModel: NSObject {
241 } 243 }
242 } 244 }
243 245
  246 + /// 获取身份信息列表数据
  247 + /// - Parameters:
  248 + /// - page: 页数
  249 + /// - resultBlock: 返回
  250 + static func requestAuthStandList(page: NSInteger, resultBlock: @escaping resultNewsBlock) {
  251 + let param = NSMutableDictionary()
  252 + param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "sid")
  253 + param.setValue("10", forKey: "pageSize")
  254 + param.setValue("\(page)", forKey: "page")
  255 + showLoading(message: "")
  256 + CNLiveNetworking.setAllowRequestDefaultArgument(true)
  257 + CNLiveNetworking.setupShowDataResult(false)
  258 + CNLiveNetworking.requestNetwork(with: .GET, urlString: APPBaseMCUrl+"/identityApi/allList", param: param as! [String : String], cacheType: .networkOnly) { task, result, error in
  259 + hiddenLoading()
  260 + if (error == nil) {
  261 + let resp = result as! NSDictionary
  262 + let errorCode = "\(resp["errorCode"] ?? "0")"
  263 + if (errorCode == "0") {
  264 + let newsModel = dictionaryToModel(resp as! [String : Any], StandListBaseModel.self,"data") as! StandListBaseModel
  265 + resultBlock(newsModel,.success)
  266 + } else {
  267 + showMessage(message: resp["errorMessage"] as! String)
  268 + resultBlock(NSNull(),.failed)
  269 + }
  270 + } else {
  271 + if page > 1 {
  272 + if CNLiveNetworking.isNetworking() {
  273 + showMessage(message: "获取失败")
  274 + resultBlock(NSNull(),.failed)
  275 + } else {
  276 + showMessage(message: "似乎与网络断开链接")
  277 + resultBlock(NSNull(),.noNetwork)
  278 + }
  279 + }
  280 + }
  281 + }
  282 + }
  283 +
  284 + /// 上传用户认证信息接口
  285 + /// - Parameters:
  286 + /// - infos: 认证信息数据
  287 + /// - resultBlock: 返回
  288 + static func requestsPOSTAuthInfo(identityId: String,infos: NSArray, resultBlock: @escaping resultNewsBlock) {
  289 +
  290 + let values = NSMutableDictionary()
  291 + values.addEntries(from: ["sid":UserInfoManager.shared.userInfo.uid])
  292 + values.addEntries(from: ["identityId":identityId])
  293 + let temp_array = NSMutableArray()
  294 + for info in infos {
  295 + let value = (info as! MineStandInfoModel).value ?? ""
  296 + let key = (info as! MineStandInfoModel).name ?? ""
  297 + let authInfoId = (info as! MineStandInfoModel).authInfoId
  298 + let inputType = (info as! MineStandInfoModel).inputType
  299 + if value.count == 0 {
  300 + if inputType == 3 {
  301 + showMessage(message: "请选择\(key)")
  302 + return
  303 + } else {
  304 + showMessage(message: "请填写\(key)")
  305 + return
  306 + }
  307 + }
  308 + temp_array.add(["authInfoId":authInfoId,"msg":value] as [String : Any])
  309 + }
  310 + values.addEntries(from: ["authInfo":temp_array])
  311 + do {
  312 + let request = URLRequest.init(url: URL.init(string: APPBaseMCUrl+"/identityApi/saveUserMsg")!) as! NSMutableURLRequest
  313 + request.httpMethod = "POST"
  314 + request.timeoutInterval = 10
  315 + request.setValue("application/json", forHTTPHeaderField: "Content-Type")
  316 + let data = try JSONSerialization.data(withJSONObject: values, options: .prettyPrinted)
  317 + request.httpBody = data
  318 + showLoading(message: "")
  319 + CNLiveNetworking.setAllowRequestDefaultArgument(false)
  320 + CNLiveNetworking.setupShowDataResult(false)
  321 + CNLiveNetworking.setBuildCustomUrlRequest(request as URLRequest) { task, result, error in
  322 + hiddenLoading()
  323 + if (error == nil) {
  324 + let resp = result as! NSDictionary
  325 + let errorCode = "\(resp["errorCode"] ?? "0")"
  326 + if (errorCode == "0") {
  327 + resultBlock(NSNull(),.success)
  328 + } else {
  329 + showMessage(message: resp["errorMessage"] as! String)
  330 + resultBlock(NSNull(),.failed)
  331 + }
  332 + } else {
  333 + if CNLiveNetworking.isNetworking() {
  334 + showMessage(message: "上传失败")
  335 + resultBlock(NSNull(),.failed)
  336 + } else {
  337 + showMessage(message: "似乎与网络断开链接")
  338 + resultBlock(NSNull(),.noNetwork)
  339 + }
  340 + }
  341 + }
  342 + } catch {
  343 + showMessage(message: "上传失败")
  344 + resultBlock(NSNull(),.failed)
  345 + }
  346 + }
  347 +
  348 + /// 获取身份信息数据
  349 + /// - Parameters:
  350 + /// - identityId: 身份id
  351 + /// - resultBlock: 返回
  352 + static func requestsStandInfo(identityId: String, resultBlock: @escaping resultNewsBlock) {
  353 + let param = NSMutableDictionary()
  354 + param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "sid")
  355 + param.setValue(identityId, forKey: "identityId")
  356 + showLoading(message: "")
  357 + CNLiveNetworking.setAllowRequestDefaultArgument(true)
  358 + CNLiveNetworking.setupShowDataResult(false)
  359 + CNLiveNetworking.requestNetwork(with: .GET, urlString: APPBaseMCUrl+"/identityApi/getIdentity", param: param as! [String: String], cacheType: .networkOnly) { task, result, error in
  360 + hiddenLoading()
  361 + if (error == nil) {
  362 + let resp = result as! NSDictionary
  363 + let errorCode = "\(resp["errorCode"] ?? "0")"
  364 + if (errorCode == "0") {
  365 + let newsModel = dictionaryToModel(resp as! [String : Any], MineStandInfoBaseModel.self,"data") as! MineStandInfoBaseModel
  366 + resultBlock(newsModel.authInfos,.success)
  367 + } else {
  368 + showMessage(message: resp["errorMessage"] as! String)
  369 + resultBlock(NSNull(),.failed)
  370 + }
  371 + } else {
  372 + if CNLiveNetworking.isNetworking() {
  373 + showMessage(message: "获取失败")
  374 + resultBlock(NSNull(),.failed)
  375 + } else {
  376 + showMessage(message: "似乎与网络断开链接")
  377 + resultBlock(NSNull(),.noNetwork)
  378 + }
  379 + }
  380 + }
  381 + }
  382 +
244 /// 获取最新app版本 383 /// 获取最新app版本
245 /// - Parameter resultBlock: 结果回调 384 /// - Parameter resultBlock: 结果回调
246 static func requestSystemNews(resultBlock: @escaping resultNewsBlock) { 385 static func requestSystemNews(resultBlock: @escaping resultNewsBlock) {
metaCode/Supporting Files/Assets.xcassets/MinePage/mIne_auth_result_header_icon.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "mIne_auth_result_header_icon@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "mIne_auth_result_header_icon@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_auth_result_header_icon.imageset/mIne_auth_result_header_icon@2x.png 0 → 100644

159 KB

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

575 KB

metaCode/Supporting Files/Assets.xcassets/MinePage/mine_header_message_gray_more.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "mine_header_message_gray_more@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "mine_header_message_gray_more@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_header_message_gray_more.imageset/mine_header_message_gray_more@2x.png 0 → 100644

333 Bytes

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

578 Bytes