Commit 84ef1fb563b612a94421cef259b2ab48d5ccac56
1 parent
4b46ed20
1.登录页苹果登录 , 微信登录 2.我的-绑定管理 微信,苹果
Showing
23 changed files
with
717 additions
and
3 deletions
metaCode.xcodeproj/project.pbxproj
| @@ -128,6 +128,9 @@ | @@ -128,6 +128,9 @@ | ||
| 128 | 19BB202B2AF382150094D962 /* CNLiveAdaptTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BB202A2AF382150094D962 /* CNLiveAdaptTool.swift */; }; | 128 | 19BB202B2AF382150094D962 /* CNLiveAdaptTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BB202A2AF382150094D962 /* CNLiveAdaptTool.swift */; }; |
| 129 | 19C0F7672BD8DC4D0097CC8F /* CNThreeLoginModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19C0F7662BD8DC4D0097CC8F /* CNThreeLoginModel.swift */; }; | 129 | 19C0F7672BD8DC4D0097CC8F /* CNThreeLoginModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19C0F7662BD8DC4D0097CC8F /* CNThreeLoginModel.swift */; }; |
| 130 | 19C0F7692BD9F9F70097CC8F /* CNThreeLoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19C0F7682BD9F9F70097CC8F /* CNThreeLoginViewController.swift */; }; | 130 | 19C0F7692BD9F9F70097CC8F /* CNThreeLoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19C0F7682BD9F9F70097CC8F /* CNThreeLoginViewController.swift */; }; |
| 131 | + 19C0F76B2BDB432A0097CC8F /* CNLiveMineBindingManagerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19C0F76A2BDB432A0097CC8F /* CNLiveMineBindingManagerController.swift */; }; | ||
| 132 | + 19C0F76D2BDB48750097CC8F /* CNBindingManageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19C0F76C2BDB48750097CC8F /* CNBindingManageCell.swift */; }; | ||
| 133 | + 19C0F76F2BDB4CE10097CC8F /* CNBindingManageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19C0F76E2BDB4CE10097CC8F /* CNBindingManageModel.swift */; }; | ||
| 131 | 19CC4D472ADD006600308E2A /* CNDownSlideSingleCourseCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19CC4D462ADD006600308E2A /* CNDownSlideSingleCourseCell.swift */; }; | 134 | 19CC4D472ADD006600308E2A /* CNDownSlideSingleCourseCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19CC4D462ADD006600308E2A /* CNDownSlideSingleCourseCell.swift */; }; |
| 132 | 19CC4D492ADD06C500308E2A /* UITableView+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19CC4D482ADD06C500308E2A /* UITableView+Extension.swift */; }; | 135 | 19CC4D492ADD06C500308E2A /* UITableView+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19CC4D482ADD06C500308E2A /* UITableView+Extension.swift */; }; |
| 133 | 19CC4D4B2ADD086F00308E2A /* CNUpSlideDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19CC4D4A2ADD086F00308E2A /* CNUpSlideDetailViewController.swift */; }; | 136 | 19CC4D4B2ADD086F00308E2A /* CNUpSlideDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19CC4D4A2ADD086F00308E2A /* CNUpSlideDetailViewController.swift */; }; |
| @@ -405,6 +408,9 @@ | @@ -405,6 +408,9 @@ | ||
| 405 | 19BB202A2AF382150094D962 /* CNLiveAdaptTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveAdaptTool.swift; sourceTree = "<group>"; }; | 408 | 19BB202A2AF382150094D962 /* CNLiveAdaptTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveAdaptTool.swift; sourceTree = "<group>"; }; |
| 406 | 19C0F7662BD8DC4D0097CC8F /* CNThreeLoginModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNThreeLoginModel.swift; sourceTree = "<group>"; }; | 409 | 19C0F7662BD8DC4D0097CC8F /* CNThreeLoginModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNThreeLoginModel.swift; sourceTree = "<group>"; }; |
| 407 | 19C0F7682BD9F9F70097CC8F /* CNThreeLoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNThreeLoginViewController.swift; sourceTree = "<group>"; }; | 410 | 19C0F7682BD9F9F70097CC8F /* CNThreeLoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNThreeLoginViewController.swift; sourceTree = "<group>"; }; |
| 411 | + 19C0F76A2BDB432A0097CC8F /* CNLiveMineBindingManagerController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineBindingManagerController.swift; sourceTree = "<group>"; }; | ||
| 412 | + 19C0F76C2BDB48750097CC8F /* CNBindingManageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNBindingManageCell.swift; sourceTree = "<group>"; }; | ||
| 413 | + 19C0F76E2BDB4CE10097CC8F /* CNBindingManageModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNBindingManageModel.swift; sourceTree = "<group>"; }; | ||
| 408 | 19CC4D462ADD006600308E2A /* CNDownSlideSingleCourseCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNDownSlideSingleCourseCell.swift; sourceTree = "<group>"; }; | 414 | 19CC4D462ADD006600308E2A /* CNDownSlideSingleCourseCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNDownSlideSingleCourseCell.swift; sourceTree = "<group>"; }; |
| 409 | 19CC4D482ADD06C500308E2A /* UITableView+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITableView+Extension.swift"; sourceTree = "<group>"; }; | 415 | 19CC4D482ADD06C500308E2A /* UITableView+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITableView+Extension.swift"; sourceTree = "<group>"; }; |
| 410 | 19CC4D4A2ADD086F00308E2A /* CNUpSlideDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNUpSlideDetailViewController.swift; sourceTree = "<group>"; }; | 416 | 19CC4D4A2ADD086F00308E2A /* CNUpSlideDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNUpSlideDetailViewController.swift; sourceTree = "<group>"; }; |
| @@ -1134,6 +1140,7 @@ | @@ -1134,6 +1140,7 @@ | ||
| 1134 | 79803E262AD68D3100F05F68 /* CNLiveMineShopViewController.swift */, | 1140 | 79803E262AD68D3100F05F68 /* CNLiveMineShopViewController.swift */, |
| 1135 | 79E672022AFDFA9C00F2F768 /* CNLiveMineSignOutViewController.swift */, | 1141 | 79E672022AFDFA9C00F2F768 /* CNLiveMineSignOutViewController.swift */, |
| 1136 | 79DC67632B5FB60900261A94 /* CNLiveMineAuthFormViewController.swift */, | 1142 | 79DC67632B5FB60900261A94 /* CNLiveMineAuthFormViewController.swift */, |
| 1143 | + 19C0F76A2BDB432A0097CC8F /* CNLiveMineBindingManagerController.swift */, | ||
| 1137 | ); | 1144 | ); |
| 1138 | path = Controller; | 1145 | path = Controller; |
| 1139 | sourceTree = "<group>"; | 1146 | sourceTree = "<group>"; |
| @@ -1325,6 +1332,7 @@ | @@ -1325,6 +1332,7 @@ | ||
| 1325 | 798A44F12A30674200815935 /* CNLiveMineSubBodyListView.swift */, | 1332 | 798A44F12A30674200815935 /* CNLiveMineSubBodyListView.swift */, |
| 1326 | 79F4B11B2A33036E00993C03 /* CNLiveMineInfoAlertView.swift */, | 1333 | 79F4B11B2A33036E00993C03 /* CNLiveMineInfoAlertView.swift */, |
| 1327 | 79803E282AD6991200F05F68 /* CNLiveMineInputMessageView.swift */, | 1334 | 79803E282AD6991200F05F68 /* CNLiveMineInputMessageView.swift */, |
| 1335 | + 19C0F76C2BDB48750097CC8F /* CNBindingManageCell.swift */, | ||
| 1328 | ); | 1336 | ); |
| 1329 | path = View; | 1337 | path = View; |
| 1330 | sourceTree = "<group>"; | 1338 | sourceTree = "<group>"; |
| @@ -1334,6 +1342,7 @@ | @@ -1334,6 +1342,7 @@ | ||
| 1334 | children = ( | 1342 | children = ( |
| 1335 | 7978A8422A396632007C86B8 /* CNLiveMineViewModel.swift */, | 1343 | 7978A8422A396632007C86B8 /* CNLiveMineViewModel.swift */, |
| 1336 | 790B1FB32A4153E90074CF00 /* CNLiveMineBaseModel.swift */, | 1344 | 790B1FB32A4153E90074CF00 /* CNLiveMineBaseModel.swift */, |
| 1345 | + 19C0F76E2BDB4CE10097CC8F /* CNBindingManageModel.swift */, | ||
| 1337 | ); | 1346 | ); |
| 1338 | path = ViewModel; | 1347 | path = ViewModel; |
| 1339 | sourceTree = "<group>"; | 1348 | sourceTree = "<group>"; |
| @@ -1774,6 +1783,7 @@ | @@ -1774,6 +1783,7 @@ | ||
| 1774 | 191733502B2C3E1F007BCC04 /* CNLivePickerView.swift in Sources */, | 1783 | 191733502B2C3E1F007BCC04 /* CNLivePickerView.swift in Sources */, |
| 1775 | 191733622B3538DC007BCC04 /* CNLiveShopCouponsManagerViewController.swift in Sources */, | 1784 | 191733622B3538DC007BCC04 /* CNLiveShopCouponsManagerViewController.swift in Sources */, |
| 1776 | 191732902B0348F6007BCC04 /* CNLiveSwitchView.swift in Sources */, | 1785 | 191732902B0348F6007BCC04 /* CNLiveSwitchView.swift in Sources */, |
| 1786 | + 19C0F76B2BDB432A0097CC8F /* CNLiveMineBindingManagerController.swift in Sources */, | ||
| 1777 | 792B53282AFCD7640009AB49 /* CNLiveShopOrderExpressDetailViewController.swift in Sources */, | 1787 | 792B53282AFCD7640009AB49 /* CNLiveShopOrderExpressDetailViewController.swift in Sources */, |
| 1778 | 79396EF12A31C21B0053E1AF /* CNLiveInfoShowViewController.swift in Sources */, | 1788 | 79396EF12A31C21B0053E1AF /* CNLiveInfoShowViewController.swift in Sources */, |
| 1779 | 191733422B284D5E007BCC04 /* CNLiveShopCouponCreateBottomView.swift in Sources */, | 1789 | 191733422B284D5E007BCC04 /* CNLiveShopCouponCreateBottomView.swift in Sources */, |
| @@ -1859,6 +1869,7 @@ | @@ -1859,6 +1869,7 @@ | ||
| 1859 | 191733662B39237D007BCC04 /* CNLiveShopGoodsManageListTableViewCell.swift in Sources */, | 1869 | 191733662B39237D007BCC04 /* CNLiveShopGoodsManageListTableViewCell.swift in Sources */, |
| 1860 | 793CAF522A58FCA200882EF4 /* CNLiveMineExchangeViewController.swift in Sources */, | 1870 | 793CAF522A58FCA200882EF4 /* CNLiveMineExchangeViewController.swift in Sources */, |
| 1861 | 1917334E2B2C1A08007BCC04 /* CNLiveSelectCouponTapView.swift in Sources */, | 1871 | 1917334E2B2C1A08007BCC04 /* CNLiveSelectCouponTapView.swift in Sources */, |
| 1872 | + 19C0F76F2BDB4CE10097CC8F /* CNBindingManageModel.swift in Sources */, | ||
| 1862 | 191733272B148BB1007BCC04 /* CNLivePlayerFastForwardPreviewView.swift in Sources */, | 1873 | 191733272B148BB1007BCC04 /* CNLivePlayerFastForwardPreviewView.swift in Sources */, |
| 1863 | 7CD675522A29C04B008354C1 /* CNLiveConfigstant.swift in Sources */, | 1874 | 7CD675522A29C04B008354C1 /* CNLiveConfigstant.swift in Sources */, |
| 1864 | 79282A402A2F055100B5F8CF /* CNLiveConfigUserInfo.swift in Sources */, | 1875 | 79282A402A2F055100B5F8CF /* CNLiveConfigUserInfo.swift in Sources */, |
| @@ -1885,6 +1896,7 @@ | @@ -1885,6 +1896,7 @@ | ||
| 1885 | 798A44FD2A309EBA00815935 /* CNLiveTypeFeedBackViewController.swift in Sources */, | 1896 | 798A44FD2A309EBA00815935 /* CNLiveTypeFeedBackViewController.swift in Sources */, |
| 1886 | 79656E382AAEBA8E00119A61 /* CNLiveMineInputViewController.swift in Sources */, | 1897 | 79656E382AAEBA8E00119A61 /* CNLiveMineInputViewController.swift in Sources */, |
| 1887 | 19CC4D522ADD129800308E2A /* CNUpSlideAnimationTransition.swift in Sources */, | 1898 | 19CC4D522ADD129800308E2A /* CNUpSlideAnimationTransition.swift in Sources */, |
| 1899 | + 19C0F76D2BDB48750097CC8F /* CNBindingManageCell.swift in Sources */, | ||
| 1888 | 1917331D2B10A15A007BCC04 /* CNLivePlayerFailureView.swift in Sources */, | 1900 | 1917331D2B10A15A007BCC04 /* CNLivePlayerFailureView.swift in Sources */, |
| 1889 | 7CD6754F2A2840B9008354C1 /* CNMetaCodeHomePageController.swift in Sources */, | 1901 | 7CD6754F2A2840B9008354C1 /* CNMetaCodeHomePageController.swift in Sources */, |
| 1890 | 79D094DC2B0765DD008CB1F3 /* CNLiveShopBodyCouponGoodsListView.swift in Sources */, | 1902 | 79D094DC2B0765DD008CB1F3 /* CNLiveShopBodyCouponGoodsListView.swift in Sources */, |
metaCode/Classes/Main/MinePage/Controller/CNLiveMineBindingManagerController.swift
0 → 100644
| 1 | +// | ||
| 2 | +// CNLiveMineBindingManagerController.swift | ||
| 3 | +// metaCode | ||
| 4 | +// | ||
| 5 | +// Created by zx on 2024/4/26. | ||
| 6 | +// | ||
| 7 | + | ||
| 8 | +import Foundation | ||
| 9 | +import SnapKit | ||
| 10 | + | ||
| 11 | +class CNLiveMineBindingManagerController:CNLiveBaseViewController, UITableViewDataSource, UITableViewDelegate{ | ||
| 12 | + | ||
| 13 | + let kCNBindingManageCellIdentifier = "kCNBindingManageCellIdentifier" | ||
| 14 | + | ||
| 15 | + lazy var tableView : UITableView = { | ||
| 16 | + let tableView = UITableView(frame: .zero, style: .plain) | ||
| 17 | + tableView.dataSource = self | ||
| 18 | + tableView.delegate = self | ||
| 19 | + tableView.separatorStyle = .none | ||
| 20 | + tableView.register(CNBindingManageCell.self, forCellReuseIdentifier: kCNBindingManageCellIdentifier) | ||
| 21 | + tableView.backgroundColor = HexColor("#f4f4f4") | ||
| 22 | + return tableView | ||
| 23 | + }() | ||
| 24 | + | ||
| 25 | + ///数据源 | ||
| 26 | + lazy var unBindingData: NSMutableArray = { | ||
| 27 | + var dataArray = NSMutableArray() | ||
| 28 | + return dataArray | ||
| 29 | + }() | ||
| 30 | + | ||
| 31 | + override func viewWillAppear(_ animated: Bool) { | ||
| 32 | + super.viewWillAppear(animated) | ||
| 33 | + | ||
| 34 | + } | ||
| 35 | + | ||
| 36 | + override func viewDidLoad() { | ||
| 37 | + super.viewDidLoad() | ||
| 38 | + self.view.backgroundColor = HexColor(kCNDownSlideBackgroundColorHex) | ||
| 39 | + navigationBarHidden = false | ||
| 40 | + titleName = "绑定管理" | ||
| 41 | + | ||
| 42 | + self.view.addSubview(self.tableView) | ||
| 43 | + self.tableView.snp.makeConstraints { make in | ||
| 44 | + make.bottom.left.right.equalToSuperview() | ||
| 45 | + make.top.equalTo(KNavigationHeight) | ||
| 46 | + } | ||
| 47 | + self.loadData() | ||
| 48 | + } | ||
| 49 | + | ||
| 50 | + deinit { | ||
| 51 | + | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + func loadData(){ | ||
| 55 | + CNLiveMineViewModel.requestModels {[weak self] unBindingArr in | ||
| 56 | + let unbingArr = unBindingArr as! NSMutableArray | ||
| 57 | + self!.unBindingData = NSMutableArray(array: unbingArr) | ||
| 58 | + self!.tableView.reloadData() | ||
| 59 | + } | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | ||
| 63 | + return self.unBindingData.count; | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | ||
| 67 | + guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNBindingManageCellIdentifier) as? CNBindingManageCell | ||
| 68 | + else { | ||
| 69 | + return CNBindingManageCell() | ||
| 70 | + } | ||
| 71 | + let bindModel = self.unBindingData[indexPath.row] as! CNBindingManageModel | ||
| 72 | + cell.bindModel = bindModel | ||
| 73 | + cell.finishBlock = { status in | ||
| 74 | + if status == .success{ | ||
| 75 | + self.loadData() | ||
| 76 | + }else{ | ||
| 77 | + | ||
| 78 | + } | ||
| 79 | + } | ||
| 80 | + return cell | ||
| 81 | + } | ||
| 82 | + | ||
| 83 | + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | ||
| 84 | + 85 | ||
| 85 | + } | ||
| 86 | + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | ||
| 87 | + if indexPath.row == 0{ | ||
| 88 | + //跳转绑定手机号页面 | ||
| 89 | + | ||
| 90 | + } | ||
| 91 | + } | ||
| 92 | +} |
metaCode/Classes/Main/MinePage/Controller/CNLiveTypeFeedBackViewController.swift
| @@ -43,9 +43,10 @@ class CNLiveTypeFeedBackViewController : CNLiveBaseViewController, UITableViewDe | @@ -43,9 +43,10 @@ class CNLiveTypeFeedBackViewController : CNLiveBaseViewController, UITableViewDe | ||
| 43 | dataArray.add(["icon":"mine_list_sub_set_sugges","name":"产品建议"]) | 43 | dataArray.add(["icon":"mine_list_sub_set_sugges","name":"产品建议"]) |
| 44 | } | 44 | } |
| 45 | if _show_type == .setting { | 45 | if _show_type == .setting { |
| 46 | + dataArray.add(["icon":"mine_set_bangding","name":"绑定管理"]) | ||
| 46 | dataArray.add(["icon":"mine_list_sub_set_privacy","name":"隐私"]) | 47 | dataArray.add(["icon":"mine_list_sub_set_privacy","name":"隐私"]) |
| 47 | dataArray.add(["icon":"mine_list_sub_set_about","name":"关于我们"]) | 48 | dataArray.add(["icon":"mine_list_sub_set_about","name":"关于我们"]) |
| 48 | - dataArray.add(["icon":"mine_list_sub_set_about","name":"注销账号"]) | 49 | + dataArray.add(["icon":"mine_set_zhuxiao","name":"注销账号"]) |
| 49 | } | 50 | } |
| 50 | if _show_type == .privacy { | 51 | if _show_type == .privacy { |
| 51 | dataArray.add(["icon":"","name":"系统权限管理"]) | 52 | dataArray.add(["icon":"","name":"系统权限管理"]) |
| @@ -272,12 +273,15 @@ extension CNLiveTypeFeedBackViewController { | @@ -272,12 +273,15 @@ extension CNLiveTypeFeedBackViewController { | ||
| 272 | } | 273 | } |
| 273 | if _show_type == .setting { | 274 | if _show_type == .setting { |
| 274 | if indexPath.section == 0 { | 275 | if indexPath.section == 0 { |
| 275 | - self.navigationController?.pushViewController(CNLiveTypeFeedBackViewController.init(show_type: .privacy), animated: true) | 276 | + self.navigationController?.pushViewController(CNLiveMineBindingManagerController.init(), animated: true) |
| 276 | } | 277 | } |
| 277 | if indexPath.section == 1 { | 278 | if indexPath.section == 1 { |
| 278 | - self.navigationController?.pushViewController(CNLiveTypeFeedBackViewController.init(show_type: .about), animated: true) | 279 | + self.navigationController?.pushViewController(CNLiveTypeFeedBackViewController.init(show_type: .privacy), animated: true) |
| 279 | } | 280 | } |
| 280 | if indexPath.section == 2 { | 281 | if indexPath.section == 2 { |
| 282 | + self.navigationController?.pushViewController(CNLiveTypeFeedBackViewController.init(show_type: .about), animated: true) | ||
| 283 | + } | ||
| 284 | + if indexPath.section == 3 { | ||
| 281 | self.navigationController?.pushViewController(CNLiveMineSignOutViewController.init(), animated: true) | 285 | self.navigationController?.pushViewController(CNLiveMineSignOutViewController.init(), animated: true) |
| 282 | } | 286 | } |
| 283 | } | 287 | } |
metaCode/Classes/Main/MinePage/View/CNBindingManageCell.swift
0 → 100644
| 1 | +// | ||
| 2 | +// CNBindingManageCell.swift | ||
| 3 | +// metaCode | ||
| 4 | +// | ||
| 5 | +// Created by zx on 2024/4/26. | ||
| 6 | +// | ||
| 7 | + | ||
| 8 | +import Foundation | ||
| 9 | +import CNLiveShareToolKit | ||
| 10 | +import APButton | ||
| 11 | +import CNLivePayCostModule | ||
| 12 | + | ||
| 13 | +typealias FinishBlock = (_ type: CNLiveDownSlideResponseType) -> Void | ||
| 14 | + | ||
| 15 | +class CNBindingManageCell:UITableViewCell{ | ||
| 16 | + | ||
| 17 | + var finishBlock:FinishBlock? | ||
| 18 | + | ||
| 19 | + let appleBindBtnSubLayer = "appleBindBtnSubLayer" | ||
| 20 | + let wxBindBtnSubLayer = "wxBindBtnSubLayer" | ||
| 21 | + | ||
| 22 | + var _bindModel:CNBindingManageModel? | ||
| 23 | + var bindModel:CNBindingManageModel?{ | ||
| 24 | + get{ | ||
| 25 | + _bindModel | ||
| 26 | + } | ||
| 27 | + set{ | ||
| 28 | + _bindModel = newValue! | ||
| 29 | + | ||
| 30 | + if _bindModel?.title == "手机号"{ | ||
| 31 | + self.totalView.isHidden = false | ||
| 32 | + self.bindTotalView.isHidden = true | ||
| 33 | + self.phoneLabel.text = _bindModel?.desc ?? "" | ||
| 34 | + }else if _bindModel?.title == "微信"{ | ||
| 35 | + self.totalView.isHidden = true | ||
| 36 | + self.bindTotalView.isHidden = false | ||
| 37 | + self.iconImgView.image = UIImage(named: "login_wechat") | ||
| 38 | + self.nickNameLabel.text = "(\(UserInfoManager.shared.userInfo.nickName))" | ||
| 39 | + if _bindModel?.isBinding == "0"{ | ||
| 40 | + self.bindButton.isSelected = false | ||
| 41 | + let follLayer = self.subLayer(name: appleBindBtnSubLayer, viewLayer: self.bindButton.layer) | ||
| 42 | + follLayer?.removeFromSuperlayer() | ||
| 43 | + | ||
| 44 | + let payLayer = self.subLayer(name: wxBindBtnSubLayer, viewLayer: self.bindButton.layer) | ||
| 45 | + if (payLayer != nil){ | ||
| 46 | + //已添加layer | ||
| 47 | + }else{ | ||
| 48 | + //未添加layer | ||
| 49 | + let gradient = CAGradientLayer() | ||
| 50 | + gradient.frame = self.bounds | ||
| 51 | + gradient.colors = [UIColor(red: 0.4, green: 0.77, blue: 1, alpha: 1).cgColor, UIColor(red: 0.38, green: 0.6, blue: 1, alpha: 1).cgColor] | ||
| 52 | + gradient.locations = [0, 1] | ||
| 53 | + gradient.startPoint = CGPoint(x: 0.5, y: 0) | ||
| 54 | + gradient.endPoint = CGPoint(x: 1, y: 1) | ||
| 55 | + gradient.name = wxBindBtnSubLayer | ||
| 56 | + self.bindButton.layer.insertSublayer(gradient, at: 0) | ||
| 57 | + self.bindButton.backgroundColor = .clear | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + }else{ | ||
| 61 | + let afollLayer = self.subLayer(name: appleBindBtnSubLayer, viewLayer: self.bindButton.layer) | ||
| 62 | + afollLayer?.removeFromSuperlayer() | ||
| 63 | + | ||
| 64 | + let follLayer = self.subLayer(name: wxBindBtnSubLayer, viewLayer: self.bindButton.layer) | ||
| 65 | + follLayer?.removeFromSuperlayer() | ||
| 66 | + self.bindButton.isSelected = true | ||
| 67 | + self.bindButton.backgroundColor = UIColor(red: 0.92, green: 0.92, blue: 0.92, alpha: 1) | ||
| 68 | + } | ||
| 69 | + }else if _bindModel?.title == "苹果"{ | ||
| 70 | + self.totalView.isHidden = true | ||
| 71 | + self.bindTotalView.isHidden = false | ||
| 72 | + self.iconImgView.image = UIImage(named: "login_apple_icon") | ||
| 73 | + self.nickNameLabel.text = "(\(UserInfoManager.shared.userInfo.nickName))" | ||
| 74 | + if _bindModel?.isBinding == "0"{ | ||
| 75 | + self.bindButton.isSelected = false | ||
| 76 | + let follLayer = self.subLayer(name: wxBindBtnSubLayer, viewLayer: self.bindButton.layer) | ||
| 77 | + follLayer?.removeFromSuperlayer() | ||
| 78 | + | ||
| 79 | + let payLayer = self.subLayer(name: appleBindBtnSubLayer, viewLayer: self.bindButton.layer) | ||
| 80 | + | ||
| 81 | + if (payLayer != nil){ | ||
| 82 | + //已添加layer | ||
| 83 | + }else{ | ||
| 84 | + //未添加layer | ||
| 85 | + let gradient = CAGradientLayer() | ||
| 86 | + gradient.frame = self.bounds | ||
| 87 | + gradient.colors = [UIColor(red: 0.4, green: 0.77, blue: 1, alpha: 1).cgColor, UIColor(red: 0.38, green: 0.6, blue: 1, alpha: 1).cgColor] | ||
| 88 | + gradient.locations = [0, 1] | ||
| 89 | + gradient.startPoint = CGPoint(x: 0.5, y: 0) | ||
| 90 | + gradient.endPoint = CGPoint(x: 1, y: 1) | ||
| 91 | + gradient.name = appleBindBtnSubLayer | ||
| 92 | + self.bindButton.layer.insertSublayer(gradient, at: 0) | ||
| 93 | + self.bindButton.backgroundColor = .clear | ||
| 94 | + } | ||
| 95 | + }else{ | ||
| 96 | + let afollLayer = self.subLayer(name: wxBindBtnSubLayer, viewLayer: self.bindButton.layer) | ||
| 97 | + afollLayer?.removeFromSuperlayer() | ||
| 98 | + | ||
| 99 | + let follLayer = self.subLayer(name: appleBindBtnSubLayer, viewLayer: self.bindButton.layer) | ||
| 100 | + follLayer?.removeFromSuperlayer() | ||
| 101 | + self.bindButton.isSelected = true | ||
| 102 | + self.bindButton.backgroundColor = UIColor(red: 0.92, green: 0.92, blue: 0.92, alpha: 1) | ||
| 103 | + } | ||
| 104 | + } | ||
| 105 | + } | ||
| 106 | + } | ||
| 107 | + | ||
| 108 | + lazy var totalView :UIView = { | ||
| 109 | + let totalView = UIView(frame: CGRect(x: 15, y: 0, width: KSreenWidth-30, height: 70)) | ||
| 110 | + totalView.backgroundColor = .white | ||
| 111 | + totalView.layer.cornerRadius = 9 | ||
| 112 | + totalView.layer.masksToBounds = true | ||
| 113 | + return totalView | ||
| 114 | + }() | ||
| 115 | + | ||
| 116 | + lazy var changePhoneLabel: UILabel = { | ||
| 117 | + let titleLabel = UILabel.init(frame: CGRectMake(19, 0, 100, 21)) | ||
| 118 | + titleLabel.centerY = self.centerY | ||
| 119 | + titleLabel.textColor = HexColor("#333333") | ||
| 120 | + titleLabel.text = "更换手机号" | ||
| 121 | + titleLabel.textAlignment = .left | ||
| 122 | + titleLabel.font = Font_15 | ||
| 123 | + return titleLabel | ||
| 124 | + }() | ||
| 125 | + | ||
| 126 | + lazy var phoneLabel: UILabel = { | ||
| 127 | + let titleLabel = UILabel.init(frame: CGRectMake(self.totalView.right-130, 0, 100, 21)) | ||
| 128 | + titleLabel.centerY = self.centerY | ||
| 129 | + titleLabel.textColor = HexColor("#999999") | ||
| 130 | + titleLabel.text = "130xxxx1123" | ||
| 131 | + titleLabel.textAlignment = .left | ||
| 132 | + titleLabel.font = Font_15 | ||
| 133 | + return titleLabel | ||
| 134 | + }() | ||
| 135 | + | ||
| 136 | + lazy var moreImgView :UIImageView = { | ||
| 137 | + let moreImgView = UIImageView() | ||
| 138 | + moreImgView.image = UIImage(named: "mine_set_band_detail") | ||
| 139 | + return moreImgView | ||
| 140 | + }() | ||
| 141 | + | ||
| 142 | + //绑定总视图 | ||
| 143 | + lazy var bindTotalView :UIView = { | ||
| 144 | + let totalView = UIView(frame: CGRect(x: 15, y: 0, width: KSreenWidth-30, height: 70)) | ||
| 145 | + totalView.backgroundColor = .white | ||
| 146 | + totalView.layer.cornerRadius = 9 | ||
| 147 | + totalView.layer.masksToBounds = true | ||
| 148 | + return totalView | ||
| 149 | + }() | ||
| 150 | + lazy var iconImgView :UIImageView = { | ||
| 151 | + let moreImgView = UIImageView() | ||
| 152 | + return moreImgView | ||
| 153 | + }() | ||
| 154 | + lazy var nameLabel: UILabel = { | ||
| 155 | + let titleLabel = UILabel.init() | ||
| 156 | + titleLabel.textColor = HexColor("#333333") | ||
| 157 | + titleLabel.textAlignment = .left | ||
| 158 | + titleLabel.font = Font_15 | ||
| 159 | + return titleLabel | ||
| 160 | + }() | ||
| 161 | + lazy var nickNameLabel: UILabel = { | ||
| 162 | + let titleLabel = UILabel.init() | ||
| 163 | + titleLabel.textColor = HexColor("#999999") | ||
| 164 | + titleLabel.textAlignment = .left | ||
| 165 | + titleLabel.font = Font_15 | ||
| 166 | + return titleLabel | ||
| 167 | + }() | ||
| 168 | + lazy var bindButton: UIButton = { | ||
| 169 | + let bindButton = UIButton() | ||
| 170 | + bindButton.setTitle("未绑定", for: .normal) | ||
| 171 | + bindButton.setTitle("已绑定", for: .selected) | ||
| 172 | + bindButton.setTitleColor(.white, for: .normal) | ||
| 173 | + bindButton.setTitleColor(HexColor("#999999"), for: .selected) | ||
| 174 | + bindButton.titleLabel?.font = Font_14_Fit | ||
| 175 | + bindButton.layer.cornerRadius = 15.5 | ||
| 176 | + bindButton.layer.masksToBounds = true | ||
| 177 | + bindButton.addTarget(self, action: #selector(bindButtonAction), for: .touchUpInside) | ||
| 178 | + | ||
| 179 | + return bindButton | ||
| 180 | + }() | ||
| 181 | + | ||
| 182 | + | ||
| 183 | + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { | ||
| 184 | + super.init(style: style, reuseIdentifier: reuseIdentifier) | ||
| 185 | + self.selectionStyle = .none | ||
| 186 | + self.backgroundColor = .clear | ||
| 187 | + contentView.backgroundColor = .clear | ||
| 188 | + self.initUI() | ||
| 189 | + } | ||
| 190 | + | ||
| 191 | + required init?(coder: NSCoder) { | ||
| 192 | + fatalError("init(coder:) has not been implemented") | ||
| 193 | + } | ||
| 194 | + | ||
| 195 | + func initUI(){ | ||
| 196 | + self.contentView.addSubview(self.totalView) | ||
| 197 | + self.totalView.addSubview(self.changePhoneLabel) | ||
| 198 | + self.totalView.addSubview(self.phoneLabel) | ||
| 199 | + self.totalView.addSubview(self.moreImgView) | ||
| 200 | + | ||
| 201 | + self.changePhoneLabel.snp.makeConstraints { make in | ||
| 202 | + make.left.equalToSuperview().offset(19) | ||
| 203 | + make.centerY.equalToSuperview() | ||
| 204 | + } | ||
| 205 | + self.phoneLabel.snp.makeConstraints { make in | ||
| 206 | + make.right.equalToSuperview().offset(-31) | ||
| 207 | + make.centerY.equalToSuperview() | ||
| 208 | + } | ||
| 209 | + self.moreImgView.snp.makeConstraints { make in | ||
| 210 | + make.right.equalToSuperview().offset(-15) | ||
| 211 | + make.width.height.equalTo(15) | ||
| 212 | + make.centerY.equalToSuperview() | ||
| 213 | + } | ||
| 214 | + | ||
| 215 | + self.contentView.addSubview(self.bindTotalView) | ||
| 216 | + self.bindTotalView.addSubview(self.iconImgView) | ||
| 217 | + self.bindTotalView.addSubview(self.nameLabel) | ||
| 218 | + self.bindTotalView.addSubview(self.nickNameLabel) | ||
| 219 | + self.bindTotalView.addSubview(self.bindButton) | ||
| 220 | + self.iconImgView.snp.makeConstraints { make in | ||
| 221 | + make.left.equalToSuperview().offset(15) | ||
| 222 | + make.centerY.equalToSuperview() | ||
| 223 | + } | ||
| 224 | + self.nameLabel.snp.makeConstraints { make in | ||
| 225 | + make.left.equalTo(self.iconImgView.snp.right).offset(10) | ||
| 226 | + make.centerY.equalToSuperview() | ||
| 227 | + } | ||
| 228 | + self.nickNameLabel.snp.makeConstraints { make in | ||
| 229 | + make.left.equalTo(self.nameLabel.snp.right).offset(5) | ||
| 230 | + make.centerY.equalToSuperview() | ||
| 231 | + } | ||
| 232 | + self.bindButton.snp.makeConstraints { make in | ||
| 233 | + make.right.equalToSuperview().offset(-15) | ||
| 234 | + make.width.equalTo(80) | ||
| 235 | + make.height.equalTo(31) | ||
| 236 | + make.centerY.equalToSuperview() | ||
| 237 | + } | ||
| 238 | + | ||
| 239 | + } | ||
| 240 | + | ||
| 241 | + func subLayer(name:String,viewLayer:CALayer) -> CALayer?{ | ||
| 242 | + if let subLayer = viewLayer.sublayers?.first(where: { $0.name == name }) { | ||
| 243 | + // 这里可以对获取到的子图层进行操作或者访问其属性等 | ||
| 244 | + return subLayer | ||
| 245 | + } else { | ||
| 246 | +// print("未找到指定名称的图层") | ||
| 247 | + return nil | ||
| 248 | + } | ||
| 249 | + } | ||
| 250 | + | ||
| 251 | + @objc func bindButtonAction(){ | ||
| 252 | + if self.bindButton.isSelected{ | ||
| 253 | + //已绑定 | ||
| 254 | + AlertTool.showSystemAlert(title: "确定解除绑定?", message: "", actionTitles: ["确定","取消"], style: .alert) { index in | ||
| 255 | + if index == 1 { | ||
| 256 | + self.requestBindingManage(model: self.bindModel!) | ||
| 257 | + } | ||
| 258 | + } | ||
| 259 | + }else{ | ||
| 260 | + //未绑定 , 执行绑定操作 | ||
| 261 | + self.requestBindingManage(model: self.bindModel!) | ||
| 262 | + } | ||
| 263 | + } | ||
| 264 | + | ||
| 265 | + func requestBindingManage(model:CNBindingManageModel){ | ||
| 266 | + if model.type == CNLiveSendAuthRespWX{ | ||
| 267 | + if !WXApi.isWXAppInstalled(){ | ||
| 268 | + showMessage(message: "未安装微信") | ||
| 269 | + } | ||
| 270 | + }else if model.type == CNLiveSendAuthRespApple{ | ||
| 271 | + | ||
| 272 | + } | ||
| 273 | + if model.isBinding == "1"{ | ||
| 274 | + //解除绑定操作 | ||
| 275 | + CNLiveMineViewModel.requestUnBindingModel(model: self.bindModel!) { result, status in | ||
| 276 | + if status == .success{ | ||
| 277 | + self.finishBlock?(.success) | ||
| 278 | + } | ||
| 279 | + } | ||
| 280 | + }else{ | ||
| 281 | + //绑定操作 | ||
| 282 | + CNLiveMineViewModel.requestBindingModel(model: self.bindModel!) { result, status in | ||
| 283 | + if status == .success{ | ||
| 284 | + self.finishBlock?(.success) | ||
| 285 | + } | ||
| 286 | + } | ||
| 287 | + } | ||
| 288 | + } | ||
| 289 | +} |
metaCode/Classes/Main/MinePage/ViewModel/CNBindingManageModel.swift
0 → 100644
| 1 | +// | ||
| 2 | +// CNBindingManageModel.swift | ||
| 3 | +// metaCode | ||
| 4 | +// | ||
| 5 | +// Created by zx on 2024/4/26. | ||
| 6 | +// | ||
| 7 | + | ||
| 8 | +import Foundation | ||
| 9 | +import CNLiveShareToolKit | ||
| 10 | + | ||
| 11 | +class CNBindingManageModel:BaseModel{ | ||
| 12 | + var title = "" | ||
| 13 | + var desc = "" | ||
| 14 | + var image = "" | ||
| 15 | + var isBinding = ""//是否绑定 | ||
| 16 | + var thirdPartyPlat = "" | ||
| 17 | + var thirdPartyId = "" | ||
| 18 | + var _type:CNLiveSendAuthResp = CNLiveSendAuthRespWX | ||
| 19 | + var type:CNLiveSendAuthResp{ | ||
| 20 | + get{ | ||
| 21 | + _type = CNLiveSendAuthRespWX | ||
| 22 | + if self.thirdPartyPlat == "1"{ | ||
| 23 | + _type = CNLiveSendAuthRespWB | ||
| 24 | + }else if self.thirdPartyPlat == "2"{ | ||
| 25 | + _type = CNLiveSendAuthRespQQ | ||
| 26 | + }else if self.thirdPartyPlat == "3"{ | ||
| 27 | + _type = CNLiveSendAuthRespWX | ||
| 28 | + }else if self.thirdPartyPlat == "5"{ | ||
| 29 | + _type = CNLiveSendAuthRespApple | ||
| 30 | + } | ||
| 31 | + return _type | ||
| 32 | + } | ||
| 33 | + } | ||
| 34 | + | ||
| 35 | +} |
metaCode/Classes/Main/MinePage/ViewModel/CNLiveMineViewModel.swift
| @@ -9,6 +9,7 @@ import Foundation | @@ -9,6 +9,7 @@ import Foundation | ||
| 9 | import CNLiveRequestBastKit | 9 | import CNLiveRequestBastKit |
| 10 | import HandyJSON | 10 | import HandyJSON |
| 11 | import AFNetworking | 11 | import AFNetworking |
| 12 | +import CNLiveShareToolKit | ||
| 12 | 13 | ||
| 13 | enum CNLiveMineRequestType { | 14 | enum CNLiveMineRequestType { |
| 14 | case icon | 15 | case icon |
| @@ -32,8 +33,179 @@ enum CNLiveMineGetWriteType { | @@ -32,8 +33,179 @@ enum CNLiveMineGetWriteType { | ||
| 32 | } | 33 | } |
| 33 | typealias resultBlock = (_ type: CNLiveMineRequestType,_ result: Bool) -> Void | 34 | typealias resultBlock = (_ type: CNLiveMineRequestType,_ result: Bool) -> Void |
| 34 | typealias resultNewsBlock = (_ result: Any,_ respStatue :CNLiveMineResponseType) -> Void | 35 | typealias resultNewsBlock = (_ result: Any,_ respStatue :CNLiveMineResponseType) -> Void |
| 36 | +typealias bindingResultBlock = (_ unBindingArr: Any) -> Void//三方登录绑定查询 | ||
| 37 | + | ||
| 35 | class CNLiveMineViewModel: NSObject { | 38 | class CNLiveMineViewModel: NSObject { |
| 36 | 39 | ||
| 40 | + /** | ||
| 41 | + * @abstract 获取绑定数据 | ||
| 42 | + * | ||
| 43 | + * @param block 回调 | ||
| 44 | + */ | ||
| 45 | + static func requestModels(resultBlock: @escaping bindingResultBlock) { | ||
| 46 | + let unBindingData = NSMutableArray() | ||
| 47 | + var tmodel = CNBindingManageModel() | ||
| 48 | + tmodel.title = "手机号" | ||
| 49 | + tmodel.image = "" | ||
| 50 | + if UserInfoManager.shared.userInfo.mobile.count > 0{ | ||
| 51 | + if UserInfoManager.shared.userInfo.mobile.count > 10{ | ||
| 52 | + let originalMobile = UserInfoManager.shared.userInfo.mobile | ||
| 53 | + let rangeToReplace = originalMobile.index(originalMobile.startIndex, offsetBy: 3)..<originalMobile.index(originalMobile.startIndex, offsetBy: 7) | ||
| 54 | + let maskedMobile = originalMobile.replacingCharacters(in: rangeToReplace, with: "****") | ||
| 55 | + tmodel.desc = maskedMobile | ||
| 56 | + } | ||
| 57 | + tmodel.thirdPartyId = UserInfoManager.shared.userInfo.qqUid | ||
| 58 | + tmodel.isBinding = "1" | ||
| 59 | + }else{ | ||
| 60 | + tmodel.desc = "未绑定手机号" | ||
| 61 | + tmodel.isBinding = "0" | ||
| 62 | + } | ||
| 63 | + tmodel.thirdPartyPlat = "10" | ||
| 64 | + tmodel.thirdPartyId = UserInfoManager.shared.userInfo.uid | ||
| 65 | + unBindingData.add(tmodel) | ||
| 66 | + | ||
| 67 | + let wmodel = CNBindingManageModel() | ||
| 68 | + wmodel.title = "微信" | ||
| 69 | + wmodel.image = "login_wechat" | ||
| 70 | + wmodel.thirdPartyPlat = "3" | ||
| 71 | + if UserInfoManager.shared.userInfo.wxUid.count > 0{ | ||
| 72 | + wmodel.desc = "已绑定微信" | ||
| 73 | + wmodel.thirdPartyId = UserInfoManager.shared.userInfo.wxUid | ||
| 74 | + wmodel.isBinding = "1" | ||
| 75 | + }else{ | ||
| 76 | + wmodel.desc = "未绑定微信" | ||
| 77 | + wmodel.isBinding = "0" | ||
| 78 | + } | ||
| 79 | + unBindingData.add(wmodel) | ||
| 80 | + | ||
| 81 | + if #available(iOS 13, *) { | ||
| 82 | + let amodel = CNBindingManageModel() | ||
| 83 | + amodel.title = "苹果" | ||
| 84 | + amodel.image = "login_apple_icon" | ||
| 85 | + amodel.thirdPartyPlat = "5" | ||
| 86 | + if UserInfoManager.shared.userInfo.appleUid.count > 0{ | ||
| 87 | + amodel.desc = "已绑定苹果账号" | ||
| 88 | + amodel.thirdPartyId = UserInfoManager.shared.userInfo.appleUid | ||
| 89 | + amodel.isBinding = "1" | ||
| 90 | + }else{ | ||
| 91 | + amodel.desc = "未绑定苹果账号" | ||
| 92 | + amodel.isBinding = "0" | ||
| 93 | + } | ||
| 94 | + unBindingData.add(amodel) | ||
| 95 | + } else { | ||
| 96 | + | ||
| 97 | + } | ||
| 98 | + resultBlock(unBindingData) | ||
| 99 | + } | ||
| 100 | + | ||
| 101 | + /// 解除绑定 | ||
| 102 | + static func requestUnBindingModel(model: CNBindingManageModel, resultBlock: @escaping downSlideResultBlock) { | ||
| 103 | + | ||
| 104 | + let param = NSMutableDictionary.init() | ||
| 105 | + param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "uid") | ||
| 106 | + param.setValue(model.thirdPartyPlat, forKey: "thirdPartyPlat") | ||
| 107 | + param.setValue(model.thirdPartyId, forKey: "thirdPartyId") | ||
| 108 | + param.setValue(UserInfoManager.shared.userInfo.token, forKey: "token") | ||
| 109 | + param.setValue("i", forKey: "clientPlat") | ||
| 110 | + showLoading(message: "") | ||
| 111 | + let custom_param = NSMutableDictionary() | ||
| 112 | + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appId, forKey: "appId") | ||
| 113 | + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appKey, forKey: "appKey") | ||
| 114 | + CNLiveNetworking.setupCustomParam(custom_param as? [String : String]) | ||
| 115 | + CNLiveNetworking.setAllowRequestDefaultArgument(true) | ||
| 116 | + CNLiveNetworking.setupShowDataResult(false) | ||
| 117 | + CNLiveNetworking.setupShowResult(true) | ||
| 118 | + CNLiveNetworking.requestNetwork(with: .POST, urlString: APPLoginHost+"/open/api2/user/unBind3rd", param: param as! [String : Any], cacheType: .networkOnly) { task, result, error in | ||
| 119 | + hiddenLoading() | ||
| 120 | + if (error == nil) { | ||
| 121 | + let resp = result as! NSDictionary | ||
| 122 | + let errorCode = resp["errorCode"] | ||
| 123 | + if (errorCode as! String == "0") { | ||
| 124 | + model.isBinding = "0" | ||
| 125 | + var userModel = UserInfoManager.readUserInfo() | ||
| 126 | + if model.thirdPartyPlat == "3"{ | ||
| 127 | + userModel.wxUid = "" | ||
| 128 | + }else if model.thirdPartyPlat == "5"{ | ||
| 129 | + userModel.appleUid = "" | ||
| 130 | + } | ||
| 131 | + UserInfoManager.cacheUserInfo(userInfo: userModel) | ||
| 132 | + resultBlock(model, .success) | ||
| 133 | + } else { | ||
| 134 | + showMessage(message: resp["errorMessage"] as! String) | ||
| 135 | + resultBlock(NSNull(), .failed) | ||
| 136 | + } | ||
| 137 | + } else { | ||
| 138 | + resultBlock(NSNull(), .failed) | ||
| 139 | + } | ||
| 140 | + } | ||
| 141 | + } | ||
| 142 | + | ||
| 143 | + /// 绑定 | ||
| 144 | + static func requestBindingModel(model: CNBindingManageModel, resultBlock: @escaping downSlideResultBlock) { | ||
| 145 | + // 获取第三方id | ||
| 146 | + CNLiveShareImageManager.send(model.type) { resp, userInfo, error in | ||
| 147 | + if (error != nil){ | ||
| 148 | + if let err = error as? NSError{ | ||
| 149 | + if err.code == 10000{//用户取消 | ||
| 150 | + | ||
| 151 | + }else{ | ||
| 152 | + showMessage(message: "绑定失败") | ||
| 153 | + } | ||
| 154 | + return | ||
| 155 | + }else{ | ||
| 156 | + showMessage(message: "绑定失败") | ||
| 157 | + } | ||
| 158 | + return | ||
| 159 | + } | ||
| 160 | + if userInfo?.thirdPartyId.count ?? 0 > 0{ | ||
| 161 | + // 发起绑定请求 | ||
| 162 | + model.thirdPartyId = userInfo!.thirdPartyId | ||
| 163 | + | ||
| 164 | + let param = NSMutableDictionary.init() | ||
| 165 | + param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "uid") | ||
| 166 | + param.setValue(model.thirdPartyPlat, forKey: "thirdPartyPlat") | ||
| 167 | + param.setValue(model.thirdPartyId, forKey: "thirdPartyId") | ||
| 168 | + param.setValue(UserInfoManager.shared.userInfo.token, forKey: "token") | ||
| 169 | + param.setValue("i", forKey: "clientPlat") | ||
| 170 | + showLoading(message: "") | ||
| 171 | + let custom_param = NSMutableDictionary() | ||
| 172 | + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appId, forKey: "appId") | ||
| 173 | + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appKey, forKey: "appKey") | ||
| 174 | + CNLiveNetworking.setupCustomParam(custom_param as? [String : String]) | ||
| 175 | + CNLiveNetworking.setAllowRequestDefaultArgument(true) | ||
| 176 | + CNLiveNetworking.setupShowDataResult(false) | ||
| 177 | + CNLiveNetworking.setupShowResult(true) | ||
| 178 | + CNLiveNetworking.requestNetwork(with: .POST, urlString: APPLoginHost+"/open/api2/user/bind3rd", param: param as! [String : Any], cacheType: .networkOnly) { task, result, error in | ||
| 179 | + hiddenLoading() | ||
| 180 | + if (error == nil) { | ||
| 181 | + let resp = result as! NSDictionary | ||
| 182 | + let errorCode = resp["errorCode"] | ||
| 183 | + if (errorCode as! String == "0") { | ||
| 184 | + model.isBinding = "1" | ||
| 185 | + var userModel = UserInfoManager.readUserInfo() | ||
| 186 | + if model.thirdPartyPlat == "3"{ | ||
| 187 | + userModel.wxUid = model.thirdPartyId | ||
| 188 | + }else if model.thirdPartyPlat == "5"{ | ||
| 189 | + userModel.appleUid = model.thirdPartyId | ||
| 190 | + } | ||
| 191 | + UserInfoManager.cacheUserInfo(userInfo: userModel) | ||
| 192 | + resultBlock(model, .success) | ||
| 193 | + } else { | ||
| 194 | + showMessage(message: resp["errorMessage"] as! String) | ||
| 195 | + resultBlock(NSNull(), .failed) | ||
| 196 | + } | ||
| 197 | + } else { | ||
| 198 | + resultBlock(NSNull(), .failed) | ||
| 199 | + } | ||
| 200 | + } | ||
| 201 | + | ||
| 202 | + }else{ | ||
| 203 | + showMessage(message: "绑定失败") | ||
| 204 | + } | ||
| 205 | + | ||
| 206 | + } | ||
| 207 | + } | ||
| 208 | + | ||
| 37 | /// 提交更新用户单项数据 | 209 | /// 提交更新用户单项数据 |
| 38 | /// - Parameters: | 210 | /// - Parameters: |
| 39 | /// - type: nickName-昵称,gender-性别,email-邮箱, location-联系方式,birthday-生日yyyy-MM-dd | 211 | /// - type: nickName-昵称,gender-性别,email-邮箱, location-联系方式,birthday-生日yyyy-MM-dd |
metaCode/Supporting Files/Assets.xcassets/LoginPage/Login_page_header_icon.imageset/Login_page_header_icon@2x.png
metaCode/Supporting Files/Assets.xcassets/LoginPage/Login_page_header_icon.imageset/Login_page_header_icon@3x.png
metaCode/Supporting Files/Assets.xcassets/MinePage/login_apple_icon.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "filename" : "login_apple_icon@2x.png", | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "filename" : "login_apple_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/login_apple_icon.imageset/login_apple_icon@2x.png
0 → 100644
2.54 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/login_apple_icon.imageset/login_apple_icon@3x.png
0 → 100644
4.8 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/login_wechat.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "filename" : "login_wechat@2x.png", | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "filename" : "login_wechat@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/login_wechat.imageset/login_wechat@2x.png
0 → 100644
3.9 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/login_wechat.imageset/login_wechat@3x.png
0 → 100644
7.83 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_set_band_detail.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "filename" : "mine_set_band_detail@2x.png", | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "filename" : "mine_set_band_detail@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_set_band_detail.imageset/mine_set_band_detail@2x.png
0 → 100644
340 Bytes
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_set_band_detail.imageset/mine_set_band_detail@3x.png
0 → 100644
632 Bytes
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_set_bangding.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "filename" : "mine_set_bangding@2x.png", | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "filename" : "mine_set_bangding@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_set_bangding.imageset/mine_set_bangding@2x.png
0 → 100644
1.19 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_set_bangding.imageset/mine_set_bangding@3x.png
0 → 100644
2.67 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_set_zhuxiao.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "scale" : "1x" | ||
| 6 | + }, | ||
| 7 | + { | ||
| 8 | + "filename" : "mine_set_zhuxiao@2x.png", | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "scale" : "2x" | ||
| 11 | + }, | ||
| 12 | + { | ||
| 13 | + "filename" : "mine_set_zhuxiao@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_set_zhuxiao.imageset/mine_set_zhuxiao@2x.png
0 → 100644
1.01 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_set_zhuxiao.imageset/mine_set_zhuxiao@3x.png
0 → 100644
1.83 KB