Commit 4bfe3ea48d633080fadc96c38312c50204bbc56c
1 parent
aad74940
产品问题修改
Showing
24 changed files
with
364 additions
and
37 deletions
metaCode.xcodeproj/project.pbxproj
| ... | ... | @@ -178,6 +178,7 @@ |
| 178 | 178 | 7978A8432A396632007C86B8 /* CNLiveMineViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7978A8422A396632007C86B8 /* CNLiveMineViewModel.swift */; }; |
| 179 | 179 | 79803E272AD68D3100F05F68 /* CNLiveMineShopViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79803E262AD68D3100F05F68 /* CNLiveMineShopViewController.swift */; }; |
| 180 | 180 | 79803E292AD6991200F05F68 /* CNLiveMineInputMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79803E282AD6991200F05F68 /* CNLiveMineInputMessageView.swift */; }; |
| 181 | + 79868B192B874294008E0F5C /* CNLiveSaveAuthStateDB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79868B182B874293008E0F5C /* CNLiveSaveAuthStateDB.swift */; }; | |
| 181 | 182 | 7987BF3D2A497644000A1ABC /* CNLiveMineQuestViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7987BF3C2A497644000A1ABC /* CNLiveMineQuestViewController.swift */; }; |
| 182 | 183 | 798916E92B04532D00D08302 /* CNLiveSavePointDB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 798916E82B04532D00D08302 /* CNLiveSavePointDB.swift */; }; |
| 183 | 184 | 798916ED2B048E8200D08302 /* CNLiveShopTransViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 798916EC2B048E8200D08302 /* CNLiveShopTransViewController.swift */; }; |
| ... | ... | @@ -441,6 +442,7 @@ |
| 441 | 442 | 7978A8422A396632007C86B8 /* CNLiveMineViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineViewModel.swift; sourceTree = "<group>"; }; |
| 442 | 443 | 79803E262AD68D3100F05F68 /* CNLiveMineShopViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineShopViewController.swift; sourceTree = "<group>"; }; |
| 443 | 444 | 79803E282AD6991200F05F68 /* CNLiveMineInputMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineInputMessageView.swift; sourceTree = "<group>"; }; |
| 445 | + 79868B182B874293008E0F5C /* CNLiveSaveAuthStateDB.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CNLiveSaveAuthStateDB.swift; sourceTree = "<group>"; }; | |
| 444 | 446 | 7987BF3C2A497644000A1ABC /* CNLiveMineQuestViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineQuestViewController.swift; sourceTree = "<group>"; }; |
| 445 | 447 | 798916E82B04532D00D08302 /* CNLiveSavePointDB.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveSavePointDB.swift; sourceTree = "<group>"; }; |
| 446 | 448 | 798916EC2B048E8200D08302 /* CNLiveShopTransViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveShopTransViewController.swift; sourceTree = "<group>"; }; |
| ... | ... | @@ -1125,6 +1127,7 @@ |
| 1125 | 1127 | 79579CAA2AAAE905006E5B38 /* Database */ = { |
| 1126 | 1128 | isa = PBXGroup; |
| 1127 | 1129 | children = ( |
| 1130 | + 79868B182B874293008E0F5C /* CNLiveSaveAuthStateDB.swift */, | |
| 1128 | 1131 | 7C7C62F52A4D72E9007A912E /* CNLiveIdentityDB.swift */, |
| 1129 | 1132 | 79BA085C2AB18E8300D01875 /* CNLiveSaveAuthDB.swift */, |
| 1130 | 1133 | 79EABB882AB4497700F3A4E2 /* CNLiveSaveStandDB.swift */, |
| ... | ... | @@ -1883,6 +1886,7 @@ |
| 1883 | 1886 | 79A267832AF8D7BC0088D9F6 /* CNLiveShopBodyCustomView.swift in Sources */, |
| 1884 | 1887 | 1917335E2B328495007BCC04 /* CNLiveCouponListTableViewCell.swift in Sources */, |
| 1885 | 1888 | 791C1C8C2AFB85F8003E6362 /* CNLiveShopBodyExpressView.swift in Sources */, |
| 1889 | + 79868B192B874294008E0F5C /* CNLiveSaveAuthStateDB.swift in Sources */, | |
| 1886 | 1890 | 790D019A2A2DCAE400C5978D /* CNLiveViewController.swift in Sources */, |
| 1887 | 1891 | 191733192B10A05D007BCC04 /* CNLivePlayerProgressView.swift in Sources */, |
| 1888 | 1892 | 79803E272AD68D3100F05F68 /* CNLiveMineShopViewController.swift in Sources */, | ... | ... |
metaCode.xcodeproj/xcshareddata/xcschemes/metaCode.xcscheme
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<Scheme | |
| 3 | + LastUpgradeVersion = "1430" | |
| 4 | + version = "1.7"> | |
| 5 | + <BuildAction | |
| 6 | + parallelizeBuildables = "YES" | |
| 7 | + buildImplicitDependencies = "YES"> | |
| 8 | + <BuildActionEntries> | |
| 9 | + <BuildActionEntry | |
| 10 | + buildForTesting = "YES" | |
| 11 | + buildForRunning = "YES" | |
| 12 | + buildForProfiling = "YES" | |
| 13 | + buildForArchiving = "YES" | |
| 14 | + buildForAnalyzing = "YES"> | |
| 15 | + <BuildableReference | |
| 16 | + BuildableIdentifier = "primary" | |
| 17 | + BlueprintIdentifier = "818163B72A25CFCC00579C86" | |
| 18 | + BuildableName = "metaCode.app" | |
| 19 | + BlueprintName = "metaCode" | |
| 20 | + ReferencedContainer = "container:metaCode.xcodeproj"> | |
| 21 | + </BuildableReference> | |
| 22 | + </BuildActionEntry> | |
| 23 | + </BuildActionEntries> | |
| 24 | + </BuildAction> | |
| 25 | + <TestAction | |
| 26 | + buildConfiguration = "Debug" | |
| 27 | + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" | |
| 28 | + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" | |
| 29 | + shouldUseLaunchSchemeArgsEnv = "YES" | |
| 30 | + shouldAutocreateTestPlan = "YES"> | |
| 31 | + <Testables> | |
| 32 | + <TestableReference | |
| 33 | + skipped = "NO"> | |
| 34 | + <BuildableReference | |
| 35 | + BuildableIdentifier = "primary" | |
| 36 | + BlueprintIdentifier = "818163CD2A25CFCF00579C86" | |
| 37 | + BuildableName = "metaCodeTests.xctest" | |
| 38 | + BlueprintName = "metaCodeTests" | |
| 39 | + ReferencedContainer = "container:metaCode.xcodeproj"> | |
| 40 | + </BuildableReference> | |
| 41 | + </TestableReference> | |
| 42 | + <TestableReference | |
| 43 | + skipped = "NO"> | |
| 44 | + <BuildableReference | |
| 45 | + BuildableIdentifier = "primary" | |
| 46 | + BlueprintIdentifier = "818163D72A25CFCF00579C86" | |
| 47 | + BuildableName = "metaCodeUITests.xctest" | |
| 48 | + BlueprintName = "metaCodeUITests" | |
| 49 | + ReferencedContainer = "container:metaCode.xcodeproj"> | |
| 50 | + </BuildableReference> | |
| 51 | + </TestableReference> | |
| 52 | + </Testables> | |
| 53 | + </TestAction> | |
| 54 | + <LaunchAction | |
| 55 | + buildConfiguration = "Debug" | |
| 56 | + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" | |
| 57 | + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" | |
| 58 | + launchStyle = "0" | |
| 59 | + useCustomWorkingDirectory = "NO" | |
| 60 | + ignoresPersistentStateOnLaunch = "NO" | |
| 61 | + debugDocumentVersioning = "YES" | |
| 62 | + debugServiceExtension = "internal" | |
| 63 | + allowLocationSimulation = "YES"> | |
| 64 | + <BuildableProductRunnable | |
| 65 | + runnableDebuggingMode = "0"> | |
| 66 | + <BuildableReference | |
| 67 | + BuildableIdentifier = "primary" | |
| 68 | + BlueprintIdentifier = "818163B72A25CFCC00579C86" | |
| 69 | + BuildableName = "metaCode.app" | |
| 70 | + BlueprintName = "metaCode" | |
| 71 | + ReferencedContainer = "container:metaCode.xcodeproj"> | |
| 72 | + </BuildableReference> | |
| 73 | + </BuildableProductRunnable> | |
| 74 | + </LaunchAction> | |
| 75 | + <ProfileAction | |
| 76 | + buildConfiguration = "Debug" | |
| 77 | + shouldUseLaunchSchemeArgsEnv = "YES" | |
| 78 | + savedToolIdentifier = "" | |
| 79 | + useCustomWorkingDirectory = "NO" | |
| 80 | + debugDocumentVersioning = "YES"> | |
| 81 | + <BuildableProductRunnable | |
| 82 | + runnableDebuggingMode = "0"> | |
| 83 | + <BuildableReference | |
| 84 | + BuildableIdentifier = "primary" | |
| 85 | + BlueprintIdentifier = "818163B72A25CFCC00579C86" | |
| 86 | + BuildableName = "metaCode.app" | |
| 87 | + BlueprintName = "metaCode" | |
| 88 | + ReferencedContainer = "container:metaCode.xcodeproj"> | |
| 89 | + </BuildableReference> | |
| 90 | + </BuildableProductRunnable> | |
| 91 | + </ProfileAction> | |
| 92 | + <AnalyzeAction | |
| 93 | + buildConfiguration = "Debug"> | |
| 94 | + </AnalyzeAction> | |
| 95 | + <ArchiveAction | |
| 96 | + buildConfiguration = "Release" | |
| 97 | + revealArchiveInOrganizer = "YES"> | |
| 98 | + </ArchiveAction> | |
| 99 | +</Scheme> | ... | ... |
metaCode/Classes/Config/CNLiveConfigUserInfo.swift
| ... | ... | @@ -241,14 +241,24 @@ class StandSortManager: NSObject { |
| 241 | 241 | if have_id_auths.count == 0 { |
| 242 | 242 | //1.29 需求 如果第一次的时候没有进行排序,则把已经认证的放在第一位 |
| 243 | 243 | let tempArray = NSMutableArray() |
| 244 | - for item in stands.reverseObjectEnumerator().allObjects { | |
| 244 | + var haveArray = Array<Any>() | |
| 245 | + for item in stands { | |
| 245 | 246 | let listModel = item as! StandListModel |
| 246 | 247 | if listModel.auth { |
| 247 | - tempArray.insert(listModel, at: 0) | |
| 248 | + //2.21 需求把已经认证的第一次展示的时候再通过认证的时间先后顺序进行排序 | |
| 249 | +// tempArray.insert(listModel, at: 0) | |
| 250 | + haveArray.append(listModel) | |
| 248 | 251 | } else { |
| 252 | + //2.21 需求把未进行认证的第一次展示的时候根据后台返回的排序顺序进行排序,如果用户在进行了排序,则按照用户的排序为主 | |
| 249 | 253 | tempArray.add(listModel) |
| 250 | 254 | } |
| 251 | 255 | } |
| 256 | + haveArray = haveArray.sorted (by: { (item01, item02) -> Bool in | |
| 257 | + return (item01 as! StandListModel).createTime < (item02 as! StandListModel).createTime | |
| 258 | + }) | |
| 259 | + haveArray.forEach { item in | |
| 260 | + tempArray.insert(item, at: 0) | |
| 261 | + } | |
| 252 | 262 | return tempArray |
| 253 | 263 | } |
| 254 | 264 | print("allList接口里面===>\(have_id_auths)") | ... | ... |
metaCode/Classes/Config/Database/CNLiveSaveAuthStateDB.swift
0 → 100644
| 1 | +// | |
| 2 | +// CNLiveSavePointDB.swift | |
| 3 | +// metaCode | |
| 4 | +// | |
| 5 | +// Created by open on 2023/11/15. | |
| 6 | +// | |
| 7 | + | |
| 8 | +import Foundation | |
| 9 | + | |
| 10 | +let CNLiveSaveAuthStateCacheKey = "kCNLiveSaveAuthStateCacheKey" | |
| 11 | +class CNLiveSaveAuthStateDB: NSObject { | |
| 12 | + | |
| 13 | + static let shared = CNLiveSaveAuthStateDB.init() | |
| 14 | + | |
| 15 | + open func save(object: MineStandInfoBaseModel, key: String) { | |
| 16 | + var temp_dic = NSMutableDictionary.init(contentsOfFile: userFileDir+"\(key)storage.plist") | |
| 17 | + if (temp_dic == nil) { | |
| 18 | + temp_dic = NSMutableDictionary.init() | |
| 19 | + } | |
| 20 | + temp_dic?.setObject((object.toJSON() ?? Dictionary()) as Dictionary, forKey: CNLiveSaveAuthStateCacheKey as NSCopying) | |
| 21 | + temp_dic?.write(toFile: userFileDir+"\(key)storage.plist", atomically: true) | |
| 22 | + } | |
| 23 | + | |
| 24 | + open func take(key: String) -> MineStandInfoBaseModel { | |
| 25 | + let temp_dic = NSMutableDictionary.init(contentsOfFile: userFileDir+"\(key)storage.plist") | |
| 26 | + if (temp_dic == nil) { | |
| 27 | + return MineStandInfoBaseModel() | |
| 28 | + } | |
| 29 | + let resp = temp_dic?.object(forKey: CNLiveSaveAuthStateCacheKey) | |
| 30 | + let listModel = dictionaryToModel(resp as! [String : Any], MineStandInfoBaseModel.self,"") as! MineStandInfoBaseModel | |
| 31 | + return listModel | |
| 32 | + } | |
| 33 | + | |
| 34 | + private lazy var userFileDir: String = { | |
| 35 | + let userFileDir = NSString() | |
| 36 | + var path: String = "" | |
| 37 | + path = "\(fileDir)/userId_\(UserInfoManager.shared.userInfo.uid)/" | |
| 38 | + let fileManager = FileManager.default | |
| 39 | + var isDir: ObjCBool = false | |
| 40 | + let exist: Bool = fileManager.fileExists(atPath: path, isDirectory: &isDir) | |
| 41 | + if !(isDir.boolValue && exist) { | |
| 42 | + do { | |
| 43 | + try fileManager.createDirectory(atPath: path, withIntermediateDirectories: true) | |
| 44 | + } catch { | |
| 45 | + debugPrint("文件目录创建失败") | |
| 46 | + return "" | |
| 47 | + } | |
| 48 | + } | |
| 49 | + return path as String | |
| 50 | + }() | |
| 51 | + | |
| 52 | + private lazy var fileDir: String = { | |
| 53 | + let path = "\(NSHomeDirectory())/Documents/metaCode/saveAuthState" | |
| 54 | + let fileManager = FileManager.default | |
| 55 | + var isDir: ObjCBool = false | |
| 56 | + let exist: Bool = fileManager.fileExists(atPath: path, isDirectory: &isDir) | |
| 57 | + if !(isDir.boolValue && exist) { | |
| 58 | + do { | |
| 59 | + try fileManager.createDirectory(atPath: path, withIntermediateDirectories: true) | |
| 60 | + } catch { | |
| 61 | + debugPrint("文件目录创建失败") | |
| 62 | + return "" | |
| 63 | + } | |
| 64 | + } | |
| 65 | + return path as String | |
| 66 | + }() | |
| 67 | +} | ... | ... |
metaCode/Classes/Environment/CNLiveEnvironment.swift
| ... | ... | @@ -21,7 +21,7 @@ let APPId_wjj_b: String = CNLiveMCEnvironmentManager.shared.appId_wjj_b |
| 21 | 21 | ///网家家B端应用的APPKey |
| 22 | 22 | let APPKey_wjj_b: String = CNLiveMCEnvironmentManager.shared.appKey_wjj_b |
| 23 | 23 | ///当前应用的登录请求域名 |
| 24 | -let APPLoginHost: String! = CNLiveMCEnvironmentManager.shared.loginHost | |
| 24 | +let APPLoginHost: String = CNLiveMCEnvironmentManager.shared.loginHost | |
| 25 | 25 | ///当前应用的Secret |
| 26 | 26 | let APPSecret: String = CNLiveMCEnvironmentManager.shared.appSecret |
| 27 | 27 | ///当前应用的部分请求接口 | ... | ... |
metaCode/Classes/Main/LoginPage/ViewModel/CNLiveLoginViewModel.swift
| ... | ... | @@ -43,7 +43,8 @@ class CNLiveLoginViewModel : NSObject { |
| 43 | 43 | CNLiveNetworking.setupCustomParam(custom_param as? [String : String]) |
| 44 | 44 | CNLiveNetworking.setAllowRequestDefaultArgument(true) |
| 45 | 45 | CNLiveNetworking.setupShowDataResult(false) |
| 46 | - CNLiveNetworking.requestNetwork(with: .POST, urlString: APPLoginHost+"/open/api2/user/sendVerifyCode", param: param, cacheType: .networkOnly) { task, result, error in | |
| 46 | + CNLiveNetworking.setupShowResult(true) | |
| 47 | + CNLiveNetworking.requestNetwork(with: .POST, urlString: CNLiveMCEnvironmentManager.shared.loginHost+"/open/api2/user/sendVerifyCode", param: param, cacheType: .networkOnly) { task, result, error in | |
| 47 | 48 | hiddenLoading() |
| 48 | 49 | if (error == nil) { |
| 49 | 50 | let resp = result as! NSDictionary | ... | ... |
metaCode/Classes/Main/MinePage/Controller/CNLiveMineAddInfoViewController.swift
| ... | ... | @@ -85,7 +85,7 @@ class CNLiveMineAddInfoViewController : CNLiveBaseViewController, UITableViewDel |
| 85 | 85 | super.viewDidLoad() |
| 86 | 86 | switch _show_type { |
| 87 | 87 | case .add: |
| 88 | - titleName = "添加身份" | |
| 88 | + titleName = "官方认证" | |
| 89 | 89 | case .info: |
| 90 | 90 | titleName = "身份信息" |
| 91 | 91 | tableView.dragInteractionEnabled = true |
| ... | ... | @@ -307,7 +307,7 @@ extension CNLiveMineAddInfoViewController { |
| 307 | 307 | return MineStandInfoTableViewCell() |
| 308 | 308 | } |
| 309 | 309 | let authModel = dataArray[indexPath.row] as! MineAuthListModel |
| 310 | - cell.setupWithAuthDataSource(icon: authModel.icon!, name: authModel.name!,number: authModel.code!) | |
| 310 | + cell.setupWithAuthDataSource(icon: authModel.icon!, name: authModel.name!,number: authModel.code!,identityId: "\(authModel.identityId)") | |
| 311 | 311 | cell.userInteractionEnabledWhileDragging = false |
| 312 | 312 | return cell |
| 313 | 313 | } | ... | ... |
metaCode/Classes/Main/MinePage/Controller/CNLiveMineAuthFormViewController.swift
| ... | ... | @@ -84,15 +84,43 @@ class CNLiveMineAuthFormViewController: CNLiveBaseViewController, UITableViewDel |
| 84 | 84 | } |
| 85 | 85 | cell.clickBlock = {[weak self] view in |
| 86 | 86 | guard let self = self else { return } |
| 87 | + showLoading(message: "") | |
| 87 | 88 | let titleLabel = view.viewWithTag(1000) as! UILabel |
| 88 | 89 | if titleLabel.text == "个人认证" { |
| 89 | - self.navigationController?.pushViewController(CNLiveMineInputViewController.init(listModel: _listModel, authType: .person), animated: true) | |
| 90 | + CNLiveMineViewModel.requestsStandInfo(identityId: "\(_listModel.id)", type: .nodate, authType: .person) {[self] result, respStatue in | |
| 91 | + if respStatue == .success { | |
| 92 | + let model = (result as! [MineStandInfoModel]).first | |
| 93 | + if model?.inputType == 17 || model == nil { | |
| 94 | + showMessage(message: "此权限对您暂未开放,请先到首页学习成长") | |
| 95 | + return | |
| 96 | + } | |
| 97 | + self.navigationController?.pushViewController(CNLiveMineInputViewController.init(listModel: self._listModel, authType: .person), animated: true) | |
| 98 | + } | |
| 99 | + } | |
| 90 | 100 | } |
| 91 | 101 | if titleLabel.text == "企业认证" { |
| 92 | - self.navigationController?.pushViewController(CNLiveMineInputViewController.init(listModel: _listModel, authType: .enterprise), animated: true) | |
| 102 | + CNLiveMineViewModel.requestsStandInfo(identityId: "\(_listModel.id)", type: .nodate, authType: .enterprise) {[self] result, respStatue in | |
| 103 | + if respStatue == .success { | |
| 104 | + let model = (result as! [MineStandInfoModel]).first | |
| 105 | + if model?.inputType == 17 || model == nil { | |
| 106 | + showMessage(message: "此权限对您暂未开放,请先到首页学习成长") | |
| 107 | + return | |
| 108 | + } | |
| 109 | + self.navigationController?.pushViewController(CNLiveMineInputViewController.init(listModel: self._listModel, authType: .enterprise), animated: true) | |
| 110 | + } | |
| 111 | + } | |
| 93 | 112 | } |
| 94 | 113 | if titleLabel.text == "机构认证" { |
| 95 | - self.navigationController?.pushViewController(CNLiveMineInputViewController.init(listModel: _listModel, authType: .agency), animated: true) | |
| 114 | + CNLiveMineViewModel.requestsStandInfo(identityId: "\(_listModel.id)", type: .nodate, authType: .agency) {[self] result, respStatue in | |
| 115 | + if respStatue == .success { | |
| 116 | + let model = (result as! [MineStandInfoModel]).first | |
| 117 | + if model?.inputType == 17 || model == nil { | |
| 118 | + showMessage(message: "此权限对您暂未开放,请先到首页学习成长") | |
| 119 | + return | |
| 120 | + } | |
| 121 | + self.navigationController?.pushViewController(CNLiveMineInputViewController.init(listModel: self._listModel, authType: .agency), animated: true) | |
| 122 | + } | |
| 123 | + } | |
| 96 | 124 | } |
| 97 | 125 | } |
| 98 | 126 | let obj = dataArray[indexPath.section] | ... | ... |
metaCode/Classes/Main/MinePage/Controller/CNLiveMineAuthResultViewController.swift
| ... | ... | @@ -205,7 +205,7 @@ class CNLiveMineAuthResultViewController: CNLiveBaseViewController { |
| 205 | 205 | self?.iDCardView.isHidden = false |
| 206 | 206 | self?.iDCardView.idModel = self?._listModel |
| 207 | 207 | self?.tipName.text = "恭喜您通过认证" |
| 208 | - self?.tipDesc.text = listBaseModel.name!.count > 0 ? "您已是\(listBaseModel.name ?? "")!" : "恭喜您通过认证" | |
| 208 | + self?.tipDesc.text = listBaseModel.name.count > 0 ? "您已是\(listBaseModel.name)" : "恭喜您通过认证" | |
| 209 | 209 | self?._status = .default |
| 210 | 210 | self?.setNeedsStatusBarAppearanceUpdate() |
| 211 | 211 | NotificationCenter.default.post(name: Notification.Name.StandAuth.StandAuthNotificationSuccess, object: nil) | ... | ... |
metaCode/Classes/Main/MinePage/Controller/CNLiveMineViewController.swift
| ... | ... | @@ -39,7 +39,7 @@ class CNLiveMineViewController : CNLiveBaseViewController, UITableViewDelegate, |
| 39 | 39 | dataArray.add([""]) |
| 40 | 40 | let array01 : [Dictionary] = [["name":"我的身份","icon":"mine_header_icon_identity"]] |
| 41 | 41 | dataArray.add(array01) |
| 42 | - let array02 : [Dictionary] = [["name":"添加身份","icon":"mine_list_icon_add_identity"]] | |
| 42 | + let array02 : [Dictionary] = [["name":"官方认证","icon":"mine_list_icon_add_identity"]] | |
| 43 | 43 | dataArray.add(array02) |
| 44 | 44 | let array03 : [Dictionary] = [["name":"帮助与反馈","icon":"mine_list_icon_help_feedback"], |
| 45 | 45 | ["name":"更多设置","icon":"mine_list_icon_set_more"]] |
| ... | ... | @@ -50,7 +50,7 @@ class CNLiveMineViewController : CNLiveBaseViewController, UITableViewDelegate, |
| 50 | 50 | ["name":"新增优惠券","icon":"mine_list_icon_help_feedback"], |
| 51 | 51 | ["name":"优惠券管理","icon":"mine_list_icon_help_feedback"], |
| 52 | 52 | ["name":"抖音短视频","icon":"mine_list_icon_help_feedback"]] |
| 53 | -// dataArray.add(array04) | |
| 53 | + dataArray.add(array04) | |
| 54 | 54 | |
| 55 | 55 | return dataArray |
| 56 | 56 | }() | ... | ... |
metaCode/Classes/Main/MinePage/View/CNLiveMineHeaderView.swift
| ... | ... | @@ -274,7 +274,7 @@ extension MinePhotoUploadView { |
| 274 | 274 | }) |
| 275 | 275 | } |
| 276 | 276 | if self!.temp_imageView == self!.imageView03 { |
| 277 | - let uploadKey = UploadManager.uploadImage(imageData: image.jpegData(compressionQuality: 1.0)! as NSData, progressBlock: {key, progress in | |
| 277 | + let _ = UploadManager.uploadImage(imageData: image.jpegData(compressionQuality: 1.0)! as NSData, progressBlock: {key, progress in | |
| 278 | 278 | print("获取进度==>\(progress)") |
| 279 | 279 | }, successBlock: { [weak self] key,url in |
| 280 | 280 | self!.selectedImages.replaceObject(at: 2, with: image) | ... | ... |
metaCode/Classes/Main/MinePage/View/CNLiveMineSubBodyListView.swift
| ... | ... | @@ -6,7 +6,7 @@ |
| 6 | 6 | // |
| 7 | 7 | |
| 8 | 8 | import Foundation |
| 9 | - | |
| 9 | +import APButton | |
| 10 | 10 | class MineInfoLListTableViewCell : UITableViewCell { |
| 11 | 11 | |
| 12 | 12 | lazy var mainView: UIImageView = { |
| ... | ... | @@ -39,7 +39,7 @@ class MineInfoLListTableViewCell : UITableViewCell { |
| 39 | 39 | |
| 40 | 40 | lazy var addBtn: UIButton = { |
| 41 | 41 | let addBtn = UIButton.init(type: .custom) |
| 42 | - addBtn.setTitle(" 去添加 ", for: .normal) | |
| 42 | + addBtn.setTitle(" 去认证 ", for: .normal) | |
| 43 | 43 | addBtn.setTitleColor(.white, for: .normal) |
| 44 | 44 | addBtn.backgroundColor = HexColor("#67C5FF") |
| 45 | 45 | addBtn.titleLabel?.font = BoldFont_15 |
| ... | ... | @@ -56,11 +56,11 @@ class MineInfoLListTableViewCell : UITableViewCell { |
| 56 | 56 | if is_auth { |
| 57 | 57 | addBtn.backgroundColor = HexColor("#DCDCDC") |
| 58 | 58 | addBtn.setTitleColor(HexColor("#666666"), for: .normal) |
| 59 | - addBtn.setTitle(" 已添加 ", for: .normal) | |
| 59 | + addBtn.setTitle(" 已认证 ", for: .normal) | |
| 60 | 60 | }else { |
| 61 | 61 | addBtn.backgroundColor = HexColor("#67C5FF") |
| 62 | 62 | addBtn.setTitleColor(.white, for: .normal) |
| 63 | - addBtn.setTitle(" 去添加 ", for: .normal) | |
| 63 | + addBtn.setTitle(" 去认证 ", for: .normal) | |
| 64 | 64 | } |
| 65 | 65 | } |
| 66 | 66 | |
| ... | ... | @@ -130,6 +130,16 @@ class MineStandInfoTableViewCell: UITableViewCell { |
| 130 | 130 | return iconView |
| 131 | 131 | }() |
| 132 | 132 | |
| 133 | + lazy var logoButton : APButton = { | |
| 134 | + let button = APButton() | |
| 135 | + button.layer.cornerRadius = adapt_length(length: 10) | |
| 136 | + button.layer.masksToBounds = true | |
| 137 | + button.isHidden = true | |
| 138 | + button.backgroundColor = .clear | |
| 139 | + button.activityIndicator.color = .gray | |
| 140 | + return button | |
| 141 | + }() | |
| 142 | + | |
| 133 | 143 | lazy var titleLabel: UILabel = { |
| 134 | 144 | let titleLabel = UILabel.init() |
| 135 | 145 | titleLabel.backgroundColor = .clear |
| ... | ... | @@ -158,11 +168,34 @@ class MineStandInfoTableViewCell: UITableViewCell { |
| 158 | 168 | return timeLabel |
| 159 | 169 | }() |
| 160 | 170 | |
| 161 | - public func setupWithAuthDataSource(icon: String, name: String,number: String) { | |
| 171 | + public func setupWithAuthDataSource(icon: String, name: String,number: String,identityId: String) { | |
| 162 | 172 | iconView.kf.indicatorType = .activity |
| 163 | 173 | iconView.kf.setImage(with: URL(string: icon), placeholder: UIImage.imageWithColor(color: HexColor("#f9f9f9")!, size: CGSize(width: 50, height: 50))) |
| 164 | 174 | titleLabel.text = name |
| 165 | 175 | numberLabel.text = "编号:\(number)" |
| 176 | + logoButton.isHidden = false | |
| 177 | + let infoModel = CNLiveSaveAuthStateDB.shared.take(key: identityId) | |
| 178 | + if infoModel.name.isEmpty && infoModel.identityId == 0 { | |
| 179 | + logoButton.startAnimating() | |
| 180 | + DispatchQueue.global().async { | |
| 181 | + CNLiveMineViewModel.requestsStandInfo(identityId: identityId, type: .havedate, authType: .agency) {[weak self] result, respStatue in | |
| 182 | + guard let self = self else { return } | |
| 183 | + logoButton.stopAnimating() | |
| 184 | + let sub_infoModel = CNLiveSaveAuthStateDB.shared.take(key: identityId) | |
| 185 | + if sub_infoModel.authInfos.count > 0 { | |
| 186 | + logoButton.setImage(UIImage(named: "mine_form_auth_person_yellow"), for: .normal) | |
| 187 | + } else { | |
| 188 | + logoButton.setImage(UIImage(named: "mine_form_auth_enter_yellow"), for: .normal) | |
| 189 | + } | |
| 190 | + } | |
| 191 | + } | |
| 192 | + } else { | |
| 193 | + if infoModel.authInfos.count > 0 { | |
| 194 | + logoButton.setImage(UIImage(named: "mine_form_auth_person_yellow"), for: .normal) | |
| 195 | + } else { | |
| 196 | + logoButton.setImage(UIImage(named: "mine_form_auth_enter_yellow"), for: .normal) | |
| 197 | + } | |
| 198 | + } | |
| 166 | 199 | } |
| 167 | 200 | |
| 168 | 201 | public func setupWithMessageDataSource(icon: String, name: String,number: String, time: String) { |
| ... | ... | @@ -188,6 +221,7 @@ class MineStandInfoTableViewCell: UITableViewCell { |
| 188 | 221 | mainView.addSubview(titleLabel) |
| 189 | 222 | mainView.addSubview(numberLabel) |
| 190 | 223 | mainView.addSubview(timeLabel) |
| 224 | + mainView.addSubview(logoButton) | |
| 191 | 225 | |
| 192 | 226 | setupConstraints() |
| 193 | 227 | } |
| ... | ... | @@ -211,12 +245,17 @@ class MineStandInfoTableViewCell: UITableViewCell { |
| 211 | 245 | titleLabel.snp.makeConstraints { make in |
| 212 | 246 | make.centerY.equalToSuperview().offset(-15) |
| 213 | 247 | make.left.equalTo(iconView.snp.right).offset(10) |
| 214 | - make.right.equalToSuperview().offset(-30) | |
| 248 | +// make.right.equalToSuperview().offset(-30) | |
| 215 | 249 | } |
| 216 | 250 | numberLabel.snp.makeConstraints { make in |
| 217 | 251 | make.centerY.equalToSuperview().offset(15) |
| 218 | 252 | make.left.equalTo(iconView.snp.right).offset(10) |
| 219 | 253 | } |
| 254 | + logoButton.snp.makeConstraints { make in | |
| 255 | + make.centerY.equalTo(titleLabel) | |
| 256 | + make.left.equalTo(titleLabel.snp.right).offset(adapt_length(length: 5)) | |
| 257 | + make.size.equalTo(adapt_length(length: 20)) | |
| 258 | + } | |
| 220 | 259 | } |
| 221 | 260 | |
| 222 | 261 | required init?(coder: NSCoder) { | ... | ... |
metaCode/Classes/Main/MinePage/ViewModel/CNLiveMineBaseModel.swift
| ... | ... | @@ -229,15 +229,15 @@ class MineStandInfoBaseModel: BaseModel { |
| 229 | 229 | var authInfos = [MineStandInfoModel]()//个人认证 |
| 230 | 230 | var enterpriseAuthInfos = [MineStandInfoModel]()//企业认证 |
| 231 | 231 | var agencyAuthInfos = [MineStandInfoModel]()//机构认证 |
| 232 | - var icon: String? | |
| 233 | - var name: String? | |
| 232 | + var icon: String = "" | |
| 233 | + var name: String = "" | |
| 234 | 234 | var identityId: Int = 0 |
| 235 | - var code: String? | |
| 236 | - var cardImg: String? | |
| 235 | + var code: String = "" | |
| 236 | + var cardImg: String = "" | |
| 237 | 237 | var authTime: Int = 0 |
| 238 | 238 | var userStatus: Int = 0 |
| 239 | - var upPath: String? | |
| 240 | - var downPath: String? | |
| 239 | + var upPath: String = "" | |
| 240 | + var downPath: String = "" | |
| 241 | 241 | } |
| 242 | 242 | |
| 243 | 243 | class MineStandInfoModel: BaseModel { | ... | ... |
metaCode/Classes/Main/MinePage/ViewModel/CNLiveMineViewModel.swift
| ... | ... | @@ -516,6 +516,7 @@ class CNLiveMineViewModel: NSObject { |
| 516 | 516 | }else if (type == .effect) { |
| 517 | 517 | resultBlock(newsModel,.success) |
| 518 | 518 | }else { |
| 519 | + CNLiveSaveAuthStateDB.shared.save(object: newsModel, key: identityId) | |
| 519 | 520 | if newsModel.authInfos.count > 0 { |
| 520 | 521 | let tempArray = NSMutableArray.init(array: newsModel.authInfos) |
| 521 | 522 | resultBlock(tempArray,.success) |
| ... | ... | @@ -652,8 +653,8 @@ class CNLiveMineViewModel: NSObject { |
| 652 | 653 | CNLiveMineViewModel.requestsStandInfo(identityId: id, type: .effect, authType: authType) { result, respStatue in |
| 653 | 654 | if respStatue == .success { |
| 654 | 655 | let listBaseModel = result as! MineStandInfoBaseModel |
| 655 | - if listBaseModel.authTime > 0 || listBaseModel.code!.count > 0 { | |
| 656 | - showMessage(message: listBaseModel.name!.count > 0 ? "恭喜您通过认证,您已是\(listBaseModel.name ?? "")" : "恭喜您通过认证") | |
| 656 | + if listBaseModel.authTime > 0 || listBaseModel.code.count > 0 { | |
| 657 | + showMessage(message: listBaseModel.name.count > 0 ? "恭喜您通过认证,您已是\(listBaseModel.name )" : "恭喜您通过认证") | |
| 657 | 658 | resultBlock(listBaseModel, .success) |
| 658 | 659 | NotificationCenter.default.post(name: Notification.Name.StandAuth.StandAuthNotificationSuccess, object: nil) |
| 659 | 660 | } else { | ... | ... |
metaCode/Classes/Main/VideoPage/Controller/CNLiveShortVideoViewController.swift
| ... | ... | @@ -379,7 +379,7 @@ extension CNLiveShortVideoViewController { |
| 379 | 379 | } |
| 380 | 380 | } |
| 381 | 381 | func listActionMethod(viewcell: CNLiveShortVideoListTableViewCell, button: UIButton) { |
| 382 | - CNLiveShortVideoContentListView.showVideoContentListView(title: viewcell.homeModel.albumMsgModel!.albumName,dataArray: dataArray, result: {[weak self] listModel in | |
| 382 | + CNLiveShortVideoContentListView.showVideoContentListView(title: viewcell.homeModel.albumMsgModel!.albumName,dataArray: dataArray, episodeNow: viewcell.homeModel.albumMsgModel!.episodeNow, result: {[weak self] listModel in | |
| 383 | 383 | guard let self = self else { return } |
| 384 | 384 | let index = self.dataArray.index(of: listModel) as NSInteger |
| 385 | 385 | self.playTheIndex(index: index) | ... | ... |
metaCode/Classes/Main/VideoPage/View/CNLiveShortVideoCommentListView.swift
| ... | ... | @@ -415,6 +415,19 @@ class CNLiveShortVideoCommentListTableViewCell: UITableViewCell , UITableViewDel |
| 415 | 415 | return replyButton |
| 416 | 416 | }() |
| 417 | 417 | |
| 418 | + lazy var deleteButton: UIButton = { | |
| 419 | + let deleteButton = APButton() | |
| 420 | + deleteButton.setTitleColor(.white, for: .normal) | |
| 421 | + deleteButton.activityIndicator.color = .white | |
| 422 | + deleteButton.backgroundColor = .clear | |
| 423 | + deleteButton.isHidden = true | |
| 424 | + deleteButton.setTitle("删除", for: .normal) | |
| 425 | + deleteButton.setTitleColor(HexColor("#969696"), for: .normal) | |
| 426 | + deleteButton.titleLabel?.font = medium_adapt_font(pointSize: 13) | |
| 427 | + deleteButton.addTarget(self, action: #selector(replyMethod), for: .touchUpInside) | |
| 428 | + return deleteButton | |
| 429 | + }() | |
| 430 | + | |
| 418 | 431 | lazy var replyUnfoldButton: UIButton = { |
| 419 | 432 | let button = QMUIButton() |
| 420 | 433 | button.imagePosition = .right |
| ... | ... | @@ -530,6 +543,13 @@ class CNLiveShortVideoCommentListTableViewCell: UITableViewCell , UITableViewDel |
| 530 | 543 | make.width.equalTo(40) |
| 531 | 544 | make.top.equalTo(commentLabel.snp.bottom).offset(10) |
| 532 | 545 | } |
| 546 | + contentView.addSubview(deleteButton) | |
| 547 | + deleteButton.snp.makeConstraints { make in | |
| 548 | + make.left.equalTo(replyButton.snp.right).offset(adapt_length(length: 5)) | |
| 549 | + make.height.equalTo(20) | |
| 550 | + make.width.equalTo(40) | |
| 551 | + make.top.equalTo(commentLabel.snp.bottom).offset(10) | |
| 552 | + } | |
| 533 | 553 | contentView.addSubview(replyUnfoldButton) |
| 534 | 554 | replyUnfoldButton.snp.makeConstraints { make in |
| 535 | 555 | make.top.equalTo(timeLabel.snp.bottom) |
| ... | ... | @@ -557,10 +577,11 @@ class CNLiveShortVideoCommentListTableViewCell: UITableViewCell , UITableViewDel |
| 557 | 577 | } else { |
| 558 | 578 | replyUnfoldButton.isHidden = true |
| 559 | 579 | } |
| 580 | + replyButton.setTitle("回复", for: .normal) | |
| 560 | 581 | if ((contentSid == UserInfoManager.shared.userInfo.uid) || (commentData.uid == UserInfoManager.shared.userInfo.uid)) { |
| 561 | - replyButton.setTitle("删除", for: .normal) | |
| 582 | + deleteButton.isHidden = false | |
| 562 | 583 | } else { |
| 563 | - replyButton.setTitle("回复", for: .normal) | |
| 584 | + deleteButton.isHidden = true | |
| 564 | 585 | } |
| 565 | 586 | DispatchQueue.main.async {[weak self] in |
| 566 | 587 | guard let self = self else { return } |
| ... | ... | @@ -628,6 +649,7 @@ class CNLiveShortVideoCommentListTableViewCell: UITableViewCell , UITableViewDel |
| 628 | 649 | |
| 629 | 650 | @objc func replyMethod(button: UIButton) { |
| 630 | 651 | if button.titleLabel?.text == "回复" { |
| 652 | + let uid = commentModel == nil ? replyItemModel.fromSid : commentModel.uid | |
| 631 | 653 | CNLiveContentToolTextView.showCommentViewForCustom(withCommType: .reply, fromNick: commentModel == nil ? replyItemModel.fromNick : commentModel.nick, firstRespFace: false, successBlcok: {[weak self] commentString, toolbarView in |
| 632 | 654 | guard let self = self else { return } |
| 633 | 655 | CNLiveShortVideoViewModel.requestCommentWithReply(commentId: self.commentModel.commentId!, comment: commentString ?? "", toSid: self.commentModel.uid!, fromSid: UserInfoManager.shared.userInfo.uid, level: "1") {[weak self] result, respStatue in |
| ... | ... | @@ -720,7 +742,6 @@ class CNLiveShortVideoCommentListTableViewCell: UITableViewCell , UITableViewDel |
| 720 | 742 | |
| 721 | 743 | @objc func replyUnfoldMethod(button: UIButton) { |
| 722 | 744 | showLoading(message: "") |
| 723 | - print("这里点击的时候走了多少次") | |
| 724 | 745 | let replyModel: ShortVideoHomeCommentRListItemModel = self.dataSource.lastObject as! ShortVideoHomeCommentRListItemModel |
| 725 | 746 | CNLiveShortVideoViewModel.requestcommentWithReplyList(commentId: commentModel.commentId!, seqId: replyModel.seqId!) {[weak self] result, respStatue in |
| 726 | 747 | guard let self = self else { return } | ... | ... |
metaCode/Classes/Main/VideoPage/View/CNLiveShortVideoContentListView.swift
| ... | ... | @@ -111,9 +111,9 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD |
| 111 | 111 | } |
| 112 | 112 | } |
| 113 | 113 | |
| 114 | - func setupWithDataSource(title: String,dataArray: NSMutableArray) { | |
| 114 | + func setupWithDataSource(title: String,dataArray: NSMutableArray,episodeNow: String) { | |
| 115 | 115 | dataSource = dataArray |
| 116 | - titleLabel.text = title | |
| 116 | + titleLabel.text = "\(title)·\(episodeNow)集" | |
| 117 | 117 | self.tableView.reloadData() |
| 118 | 118 | } |
| 119 | 119 | |
| ... | ... | @@ -129,11 +129,11 @@ class CNLiveShortVideoContentListView: UIView, UITableViewDelegate, UITableViewD |
| 129 | 129 | removeFromSuperview() |
| 130 | 130 | } |
| 131 | 131 | |
| 132 | - static public func showVideoContentListView(title: String,dataArray: NSMutableArray,result: @escaping CloseVideoListResultBlock) { | |
| 132 | + static public func showVideoContentListView(title: String,dataArray: NSMutableArray,episodeNow: String ,result: @escaping CloseVideoListResultBlock) { | |
| 133 | 133 | |
| 134 | 134 | let pickerView = CNLiveShortVideoContentListView.init(frame: CGRect.zero) |
| 135 | 135 | pickerView.resultBlock = result |
| 136 | - pickerView.setupWithDataSource(title: title,dataArray: dataArray) | |
| 136 | + pickerView.setupWithDataSource(title: title,dataArray: dataArray,episodeNow: episodeNow) | |
| 137 | 137 | |
| 138 | 138 | let delegate = UIApplication.shared.delegate as! AppDelegate |
| 139 | 139 | delegate.window?.addSubview(pickerView) | ... | ... |
metaCode/Classes/Main/VideoPage/View/CNLiveShortVideoListTableViewCell.swift
| ... | ... | @@ -47,6 +47,7 @@ class CNLiveShortVideoListTableViewCell: UITableViewCell { |
| 47 | 47 | lazy var tipsLabel: UILabel = { |
| 48 | 48 | let label = UILabel() |
| 49 | 49 | label.textColor = UIColor.white |
| 50 | + label.text = "当前内容需付费观看" | |
| 50 | 51 | label.font = semibold_adapt_font(pointSize: 15) |
| 51 | 52 | label.textAlignment = .center |
| 52 | 53 | label.numberOfLines = 0 |
| ... | ... | @@ -142,6 +143,12 @@ class CNLiveShortVideoListTableViewCell: UITableViewCell { |
| 142 | 143 | return payView |
| 143 | 144 | }() |
| 144 | 145 | |
| 146 | + lazy var grayMaskView: UIView = { | |
| 147 | + let grayMaskView = UIView() | |
| 148 | + grayMaskView.backgroundColor = UIColor.init(white: 0, alpha: 0.6) | |
| 149 | + return grayMaskView | |
| 150 | + }() | |
| 151 | + | |
| 145 | 152 | //控制器承载图 |
| 146 | 153 | lazy var coverImageView: UIImageView = { |
| 147 | 154 | let coverImageView = UIImageView() |
| ... | ... | @@ -162,6 +169,7 @@ class CNLiveShortVideoListTableViewCell: UITableViewCell { |
| 162 | 169 | selectionStyle = .none |
| 163 | 170 | |
| 164 | 171 | contentView.addSubview(coverImageView) |
| 172 | + contentView.addSubview(grayMaskView) | |
| 165 | 173 | contentView.addSubview(shareBtn) |
| 166 | 174 | contentView.addSubview(commentBtn) |
| 167 | 175 | contentView.addSubview(likeBtn) |
| ... | ... | @@ -226,6 +234,7 @@ class CNLiveShortVideoListTableViewCell: UITableViewCell { |
| 226 | 234 | self.iconBtn.isHidden = true |
| 227 | 235 | self.titleLabel.isHidden = true |
| 228 | 236 | self.descLabel.isHidden = true |
| 237 | + self.grayMaskView.isHidden = false | |
| 229 | 238 | self.tipsLabel.isHidden = false |
| 230 | 239 | self.payView.isHidden = false |
| 231 | 240 | } else { |
| ... | ... | @@ -236,6 +245,7 @@ class CNLiveShortVideoListTableViewCell: UITableViewCell { |
| 236 | 245 | self.iconBtn.isHidden = false |
| 237 | 246 | self.titleLabel.isHidden = false |
| 238 | 247 | self.descLabel.isHidden = false |
| 248 | + self.grayMaskView.isHidden = true | |
| 239 | 249 | self.tipsLabel.isHidden = true |
| 240 | 250 | self.payView.isHidden = true |
| 241 | 251 | } |
| ... | ... | @@ -311,6 +321,9 @@ class CNLiveShortVideoListTableViewCell: UITableViewCell { |
| 311 | 321 | make.bottom.equalTo(listBtn.snp.top).offset(-10) |
| 312 | 322 | make.height.equalTo(165) |
| 313 | 323 | } |
| 324 | + grayMaskView.snp.makeConstraints { make in | |
| 325 | + make.edges.equalToSuperview() | |
| 326 | + } | |
| 314 | 327 | } |
| 315 | 328 | |
| 316 | 329 | |
| ... | ... | @@ -331,8 +344,8 @@ class CNLiveShortVideoListTableViewCell: UITableViewCell { |
| 331 | 344 | self.delegate.iconActionMethod(viewcell: self, button: button) |
| 332 | 345 | } |
| 333 | 346 | |
| 334 | - @objc func faviMothod(button: UIButton) { | |
| 335 | - self.delegate.faviActionMethod(viewcell: self, button: button as! APButton) | |
| 347 | + @objc func faviMothod(button: APButton) { | |
| 348 | + self.delegate.faviActionMethod(viewcell: self, button: button) | |
| 336 | 349 | } |
| 337 | 350 | |
| 338 | 351 | @objc func listMethod(button: UIButton) { | ... | ... |
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_form_auth_enter_yellow.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "mine_form_auth_enter_yellow@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "mine_form_auth_enter_yellow@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_enter_yellow.imageset/mine_form_auth_enter_yellow@2x.png
0 → 100644
918 Bytes
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_form_auth_enter_yellow.imageset/mine_form_auth_enter_yellow@3x.png
0 → 100644
1.59 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_form_auth_person_yellow.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "mine_form_auth_person_yellow@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "mine_form_auth_person_yellow@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_person_yellow.imageset/mine_form_auth_person_yellow@2x.png
0 → 100644
1018 Bytes
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_form_auth_person_yellow.imageset/mine_form_auth_person_yellow@3x.png
0 → 100644
1.75 KB