Commit 9bf31cd0bc66e09b13dcd3e12ff32686b61dec03
1 parent
78239991
提交修改
Showing
14 changed files
with
374 additions
and
113 deletions
Podfile
| @@ -37,6 +37,8 @@ target 'metaCode' do | @@ -37,6 +37,8 @@ target 'metaCode' do | ||
| 37 | pod 'SwiftGifOrigin', '~> 1.7.0' | 37 | pod 'SwiftGifOrigin', '~> 1.7.0' |
| 38 | #数据库存储 | 38 | #数据库存储 |
| 39 | pod 'WCDB.swift' | 39 | pod 'WCDB.swift' |
| 40 | + #占位按钮 | ||
| 41 | + pod 'APButton' | ||
| 40 | #分类滚动切换视图 | 42 | #分类滚动切换视图 |
| 41 | pod 'JXSegmentedView', :git => 'https://gitee.com/mirrors/JXSegmentedView.git' | 43 | pod 'JXSegmentedView', :git => 'https://gitee.com/mirrors/JXSegmentedView.git' |
| 42 | pod 'JXPagingView/Paging' | 44 | pod 'JXPagingView/Paging' |
metaCode/Classes/Extensions/NSDate+CNLiveExtensions.swift
| @@ -16,4 +16,16 @@ extension NSDate{ | @@ -16,4 +16,16 @@ extension NSDate{ | ||
| 16 | return formatter.string(from: self as Date) | 16 | return formatter.string(from: self as Date) |
| 17 | } | 17 | } |
| 18 | 18 | ||
| 19 | + //时间戳转成字符串 | ||
| 20 | + static func timeIntervalChangeToTimeStr(timeInterval: Double, _ dateFormat:String? = "yyyy-MM-dd") -> String { | ||
| 21 | + let date:Date = Date.init(timeIntervalSince1970: timeInterval) | ||
| 22 | + let formatter = DateFormatter.init() | ||
| 23 | + if dateFormat == nil { | ||
| 24 | + formatter.dateFormat = "yyyy-MM-dd" | ||
| 25 | + }else{ | ||
| 26 | + formatter.dateFormat = dateFormat | ||
| 27 | + } | ||
| 28 | + return formatter.string(from: date as Date) | ||
| 29 | + } | ||
| 30 | + | ||
| 19 | } | 31 | } |
metaCode/Classes/Extensions/UIButton+CNLiveExtensions.swift
| @@ -82,4 +82,6 @@ extension UIButton { | @@ -82,4 +82,6 @@ extension UIButton { | ||
| 82 | self.imageEdgeInsets = UIEdgeInsets(top: ((selfHeight - totalHeight) / 2 + titleRect.size.height + padding - imageRect.origin.y), left: (selfWidth / 2 - imageRect.origin.x - imageRect.size.width / 2), bottom: -((selfHeight - totalHeight) / 2 + titleRect.size.height + padding - imageRect.origin.y), right: -(selfWidth / 2 - imageRect.origin.x - imageRect.size.width / 2)) | 82 | self.imageEdgeInsets = UIEdgeInsets(top: ((selfHeight - totalHeight) / 2 + titleRect.size.height + padding - imageRect.origin.y), left: (selfWidth / 2 - imageRect.origin.x - imageRect.size.width / 2), bottom: -((selfHeight - totalHeight) / 2 + titleRect.size.height + padding - imageRect.origin.y), right: -(selfWidth / 2 - imageRect.origin.x - imageRect.size.width / 2)) |
| 83 | } | 83 | } |
| 84 | } | 84 | } |
| 85 | + | ||
| 86 | + | ||
| 85 | } | 87 | } |
metaCode/Classes/Main/MinePage/Controller/CNLiveMineAddInfoViewController.swift
| @@ -303,6 +303,10 @@ extension CNLiveMineAddInfoViewController { | @@ -303,6 +303,10 @@ extension CNLiveMineAddInfoViewController { | ||
| 303 | } | 303 | } |
| 304 | } | 304 | } |
| 305 | func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | 305 | func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { |
| 306 | + if _show_type == .message { | ||
| 307 | + let listModel = listArray[indexPath.row] | ||
| 308 | + return 76 + listModel.textHeight | ||
| 309 | + } | ||
| 306 | return 100 | 310 | return 100 |
| 307 | } | 311 | } |
| 308 | func tableView(_ tableView: UITableView, itemsForBeginning session: UIDragSession, at indexPath: IndexPath) -> [UIDragItem] { | 312 | func tableView(_ tableView: UITableView, itemsForBeginning session: UIDragSession, at indexPath: IndexPath) -> [UIDragItem] { |
metaCode/Classes/Main/MinePage/Controller/CNLiveMineEarnListViewController.swift
| @@ -8,6 +8,7 @@ | @@ -8,6 +8,7 @@ | ||
| 8 | import Foundation | 8 | import Foundation |
| 9 | import JXPagingView | 9 | import JXPagingView |
| 10 | import MJRefresh | 10 | import MJRefresh |
| 11 | +import EmptyDataSet_Swift | ||
| 11 | 12 | ||
| 12 | enum MineEarnShowType { | 13 | enum MineEarnShowType { |
| 13 | case record //积分记录 | 14 | case record //积分记录 |
| @@ -15,7 +16,7 @@ enum MineEarnShowType { | @@ -15,7 +16,7 @@ enum MineEarnShowType { | ||
| 15 | } | 16 | } |
| 16 | 17 | ||
| 17 | typealias CallBack = (_ scrollView: UIScrollView) -> Void | 18 | typealias CallBack = (_ scrollView: UIScrollView) -> Void |
| 18 | -class CNLiveMineEarnListViewController: CNLiveBaseViewController, JXPagingViewListViewDelegate, UITableViewDelegate, UITableViewDataSource { | 19 | +class CNLiveMineEarnListViewController: CNLiveBaseViewController, JXPagingViewListViewDelegate, UITableViewDelegate, UITableViewDataSource, EmptyDataSetSource, EmptyDataSetDelegate{ |
| 19 | 20 | ||
| 20 | 21 | ||
| 21 | let kMIneBodyFiveViewCellIdentifier = "kMIneBodyFiveViewCellIdentifier" | 22 | let kMIneBodyFiveViewCellIdentifier = "kMIneBodyFiveViewCellIdentifier" |
| @@ -23,6 +24,8 @@ class CNLiveMineEarnListViewController: CNLiveBaseViewController, JXPagingViewLi | @@ -23,6 +24,8 @@ class CNLiveMineEarnListViewController: CNLiveBaseViewController, JXPagingViewLi | ||
| 23 | let tableView = UITableView.init(frame: .zero, style: .plain) | 24 | let tableView = UITableView.init(frame: .zero, style: .plain) |
| 24 | tableView.delegate = self | 25 | tableView.delegate = self |
| 25 | tableView.dataSource = self | 26 | tableView.dataSource = self |
| 27 | + tableView.emptyDataSetSource = self | ||
| 28 | + tableView.emptyDataSetDelegate = self | ||
| 26 | tableView.backgroundColor = .clear | 29 | tableView.backgroundColor = .clear |
| 27 | tableView.separatorStyle = .none | 30 | tableView.separatorStyle = .none |
| 28 | tableView.showsVerticalScrollIndicator = false | 31 | tableView.showsVerticalScrollIndicator = false |
| @@ -44,34 +47,65 @@ class CNLiveMineEarnListViewController: CNLiveBaseViewController, JXPagingViewLi | @@ -44,34 +47,65 @@ class CNLiveMineEarnListViewController: CNLiveBaseViewController, JXPagingViewLi | ||
| 44 | var pageNum: NSInteger! | 47 | var pageNum: NSInteger! |
| 45 | var _callBack: CallBack! | 48 | var _callBack: CallBack! |
| 46 | var _show_type : MineEarnShowType! | 49 | var _show_type : MineEarnShowType! |
| 50 | + var network_type: CNLiveMineResponseType! | ||
| 47 | init(show_type: MineEarnShowType) { | 51 | init(show_type: MineEarnShowType) { |
| 48 | pageNum = 1 | 52 | pageNum = 1 |
| 49 | super.init(nibName: nil, bundle: nil) | 53 | super.init(nibName: nil, bundle: nil) |
| 50 | _show_type = show_type | 54 | _show_type = show_type |
| 51 | } | 55 | } |
| 52 | 56 | ||
| 53 | - func loadDataWithTradRecord(page: NSInteger) { | ||
| 54 | - | 57 | + func loadDataWithTradRecord(page: NSInteger, resultBlock: @escaping resultNewsBlock) { |
| 58 | + if page == 1 { | ||
| 59 | + self.pageNum = 1 | ||
| 60 | + } | ||
| 55 | if _show_type == .balance { | 61 | if _show_type == .balance { |
| 56 | - CNLiveMineViewModel.requestWithTradRecord(page: page) {result, respStatue in | 62 | + CNLiveMineViewModel.requestWithTradRecord(page: page) { result, respStatue in |
| 57 | if respStatue == .success { | 63 | if respStatue == .success { |
| 64 | + let listModel = result as! MineTradingRecordBaseModel | ||
| 65 | + self.network_type = .success | ||
| 58 | self.dataArray.removeAllObjects() | 66 | self.dataArray.removeAllObjects() |
| 59 | - self.dataArray.addObjects(from: result as! [MineTradingRecordModel]) | 67 | + self.dataArray.addObjects(from: listModel.list) |
| 60 | self.tableView.reloadData() | 68 | self.tableView.reloadData() |
| 61 | self.tableView.mj_header?.endRefreshing() | 69 | self.tableView.mj_header?.endRefreshing() |
| 62 | self.tableView.mj_footer?.endRefreshing() | 70 | self.tableView.mj_footer?.endRefreshing() |
| 71 | + if self.dataArray.count > 0 { | ||
| 72 | + self.addRefreshView() | ||
| 73 | + } | ||
| 74 | + }else if (respStatue == .noNetwork) { | ||
| 75 | + self.network_type = .noNetwork | ||
| 76 | + self.tableView.reloadEmptyDataSet() | ||
| 77 | + } else { | ||
| 78 | + self.network_type = .failed | ||
| 79 | + self.tableView.reloadEmptyDataSet() | ||
| 63 | } | 80 | } |
| 81 | + resultBlock(result, respStatue) | ||
| 64 | } | 82 | } |
| 65 | } | 83 | } |
| 66 | if _show_type == .record { | 84 | if _show_type == .record { |
| 67 | CNLiveMineViewModel.requestWithIntegralRecord(page: page) { result, respStatue in | 85 | CNLiveMineViewModel.requestWithIntegralRecord(page: page) { result, respStatue in |
| 68 | if respStatue == .success { | 86 | if respStatue == .success { |
| 87 | + let listModel = result as! MineIntegralRecordModel | ||
| 88 | + self.network_type = .success | ||
| 69 | self.dataArray.removeAllObjects() | 89 | self.dataArray.removeAllObjects() |
| 70 | - self.dataArray.addObjects(from: (result as! MineIntegralRecordModel).integralList) | 90 | + self.dataArray.addObjects(from: listModel.integralList) |
| 71 | self.tableView.reloadData() | 91 | self.tableView.reloadData() |
| 72 | self.tableView.mj_header?.endRefreshing() | 92 | self.tableView.mj_header?.endRefreshing() |
| 73 | self.tableView.mj_footer?.endRefreshing() | 93 | self.tableView.mj_footer?.endRefreshing() |
| 94 | + if self.dataArray.count > 0 { | ||
| 95 | + self.addRefreshView() | ||
| 96 | + } | ||
| 97 | + if !listModel.hasNext { | ||
| 98 | + self.tableView.mj_footer?.endRefreshing() | ||
| 99 | + self.tableView.mj_footer?.endRefreshingWithNoMoreData() | ||
| 100 | + } | ||
| 101 | + }else if (respStatue == .noNetwork) { | ||
| 102 | + self.network_type = .noNetwork | ||
| 103 | + self.tableView.reloadEmptyDataSet() | ||
| 104 | + } else { | ||
| 105 | + self.network_type = .failed | ||
| 106 | + self.tableView.reloadEmptyDataSet() | ||
| 74 | } | 107 | } |
| 108 | + resultBlock(result, respStatue) | ||
| 75 | } | 109 | } |
| 76 | } | 110 | } |
| 77 | } | 111 | } |
| @@ -83,22 +117,23 @@ class CNLiveMineEarnListViewController: CNLiveBaseViewController, JXPagingViewLi | @@ -83,22 +117,23 @@ class CNLiveMineEarnListViewController: CNLiveBaseViewController, JXPagingViewLi | ||
| 83 | override func viewDidLoad() { | 117 | override func viewDidLoad() { |
| 84 | super.viewDidLoad() | 118 | super.viewDidLoad() |
| 85 | 119 | ||
| 86 | - loadDataWithTradRecord(page: self.pageNum) | 120 | + loadDataWithTradRecord(page: self.pageNum) {result,respStatue in } |
| 121 | + | ||
| 87 | view.addSubview(tableView) | 122 | view.addSubview(tableView) |
| 88 | tableView.snp.makeConstraints { make in | 123 | tableView.snp.makeConstraints { make in |
| 89 | make.top.bottom.equalToSuperview() | 124 | make.top.bottom.equalToSuperview() |
| 90 | make.left.equalToSuperview().offset(20) | 125 | make.left.equalToSuperview().offset(20) |
| 91 | make.right.equalToSuperview().offset(-20) | 126 | make.right.equalToSuperview().offset(-20) |
| 92 | } | 127 | } |
| 93 | - | ||
| 94 | - addRefreshView() | ||
| 95 | } | 128 | } |
| 96 | 129 | ||
| 97 | private func addRefreshView() { | 130 | private func addRefreshView() { |
| 98 | - tableView.mj_footer = MJRefreshFooter.init(refreshingBlock: {[weak self] in | 131 | + let footerView = MJRefreshAutoNormalFooter.init(refreshingBlock: {[weak self] in |
| 99 | self!.pageNum += 1 | 132 | self!.pageNum += 1 |
| 100 | - self!.loadDataWithTradRecord(page: self!.pageNum) | 133 | + self!.loadDataWithTradRecord(page: self!.pageNum) {result,respStatue in } |
| 101 | }) | 134 | }) |
| 135 | + footerView.setTitle("123456", for: .noMoreData) | ||
| 136 | + tableView.mj_footer = footerView | ||
| 102 | } | 137 | } |
| 103 | } | 138 | } |
| 104 | extension CNLiveMineEarnListViewController { | 139 | extension CNLiveMineEarnListViewController { |
| @@ -135,6 +170,51 @@ extension CNLiveMineEarnListViewController { | @@ -135,6 +170,51 @@ extension CNLiveMineEarnListViewController { | ||
| 135 | 170 | ||
| 136 | extension CNLiveMineEarnListViewController { | 171 | extension CNLiveMineEarnListViewController { |
| 137 | 172 | ||
| 173 | + func image(forEmptyDataSet scrollView: UIScrollView) -> UIImage? { | ||
| 174 | + if network_type == .failed || network_type == .unkonw { | ||
| 175 | + return UIImage(named: "mine_list_source_unusual_failed") | ||
| 176 | + } | ||
| 177 | + if network_type == .noNetwork { | ||
| 178 | + return UIImage(named: "mine_list_source_unusual_noNet") | ||
| 179 | + } | ||
| 180 | + return UIImage(named: "mine_list_source_unusual_empty") | ||
| 181 | + } | ||
| 182 | + | ||
| 183 | + func title(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? { | ||
| 184 | + var defult_string = "" | ||
| 185 | + if network_type == .failed || network_type == .unkonw { | ||
| 186 | + defult_string = "接口请求错误,刷新试试~" | ||
| 187 | + } | ||
| 188 | + if network_type == .noNetwork { | ||
| 189 | + defult_string = "网络开小差了,刷新试试~" | ||
| 190 | + } | ||
| 191 | + if dataArray.count == 0 && network_type == .success{ | ||
| 192 | + defult_string = "暂无记录~" | ||
| 193 | + } | ||
| 194 | + return NSAttributedString(string: defult_string, attributes: [.font: Font_17,.foregroundColor: HexColor("#666666")!]) | ||
| 195 | + } | ||
| 196 | + | ||
| 197 | + func buttonTitle(forEmptyDataSet scrollView: UIScrollView, for state: UIControl.State) -> NSAttributedString? { | ||
| 198 | + if (network_type == .failed || network_type == .noNetwork) { | ||
| 199 | + let attributes = [NSAttributedString.Key.font:Font_16_Fit, | ||
| 200 | + NSAttributedString.Key.foregroundColor: HexColor("#609BFF")] | ||
| 201 | + return NSAttributedString(string: "刷新", attributes: attributes as [NSAttributedString.Key : Any]) | ||
| 202 | + } | ||
| 203 | + return nil | ||
| 204 | + } | ||
| 205 | + | ||
| 206 | + func backgroundColor(forEmptyDataSet scrollView: UIScrollView) -> UIColor? { | ||
| 207 | + return UIColor.white | ||
| 208 | + } | ||
| 209 | + | ||
| 210 | + func emptyDataSet(_ scrollView: UIScrollView, didTapView view: UIView) { | ||
| 211 | + pageNum = 1 | ||
| 212 | + loadDataWithTradRecord(page: 1) {result,respStatue in } | ||
| 213 | + } | ||
| 214 | +} | ||
| 215 | + | ||
| 216 | +extension CNLiveMineEarnListViewController { | ||
| 217 | + | ||
| 138 | func listView() -> UIView { | 218 | func listView() -> UIView { |
| 139 | return view | 219 | return view |
| 140 | } | 220 | } |
metaCode/Classes/Main/MinePage/Controller/CNLiveMineEarnViewController.swift
| @@ -120,6 +120,7 @@ class CNLiveMineEarnViewController: CNLiveBaseViewController, JXPagingViewDelega | @@ -120,6 +120,7 @@ class CNLiveMineEarnViewController: CNLiveBaseViewController, JXPagingViewDelega | ||
| 120 | override func viewDidAppear(_ animated: Bool) { | 120 | override func viewDidAppear(_ animated: Bool) { |
| 121 | super.viewDidAppear(animated) | 121 | super.viewDidAppear(animated) |
| 122 | categoryView.selectItemAt(index: _index) | 122 | categoryView.selectItemAt(index: _index) |
| 123 | + pagingView.listContainerView.didClickSelectedItem(at: _index) | ||
| 123 | } | 124 | } |
| 124 | 125 | ||
| 125 | override func viewDidLoad() { | 126 | override func viewDidLoad() { |
| @@ -128,12 +129,13 @@ class CNLiveMineEarnViewController: CNLiveBaseViewController, JXPagingViewDelega | @@ -128,12 +129,13 @@ class CNLiveMineEarnViewController: CNLiveBaseViewController, JXPagingViewDelega | ||
| 128 | titleName = "我的收益" | 129 | titleName = "我的收益" |
| 129 | 130 | ||
| 130 | view.addSubview(pagingView) | 131 | view.addSubview(pagingView) |
| 131 | - pagingView.listContainerView.didClickSelectedItem(at: _index) | 132 | + |
| 132 | 133 | ||
| 133 | pagingView.mainTableView.mj_header = MJRefreshNormalHeader.init(refreshingBlock: { [self] in | 134 | pagingView.mainTableView.mj_header = MJRefreshNormalHeader.init(refreshingBlock: { [self] in |
| 134 | - pagingView.mainTableView.mj_header?.endRefreshing() | ||
| 135 | -// self!.pageNum = 1 | ||
| 136 | -// self!.loadDataWithTradRecord(page: self!.pageNum) | 135 | + let vc = viewControllers[pagingView.listContainerView.currentIndex] as! CNLiveMineEarnListViewController |
| 136 | + vc.loadDataWithTradRecord(page: 1) { [self] result, respStatue in | ||
| 137 | + pagingView.mainTableView.mj_header?.endRefreshing() | ||
| 138 | + } | ||
| 137 | }) | 139 | }) |
| 138 | } | 140 | } |
| 139 | } | 141 | } |
metaCode/Classes/Main/MinePage/Controller/CNLiveMineInputViewController.swift
| @@ -12,7 +12,7 @@ import HXPHPicker | @@ -12,7 +12,7 @@ import HXPHPicker | ||
| 12 | typealias resultUploadImageBlock = (_ url: String) -> Void | 12 | typealias resultUploadImageBlock = (_ url: String) -> Void |
| 13 | class CNLiveMineInputViewController : CNLiveBaseViewController, UITableViewDelegate, UITableViewDataSource, EmptyDataSetSource, EmptyDataSetDelegate, PhotoPickerControllerDelegate{ | 13 | class CNLiveMineInputViewController : CNLiveBaseViewController, UITableViewDelegate, UITableViewDataSource, EmptyDataSetSource, EmptyDataSetDelegate, PhotoPickerControllerDelegate{ |
| 14 | 14 | ||
| 15 | - let kMineBodyInputAuthCellIdentifier = "kMineBodyInputAuthCellIdentifier" | 15 | + static let kMineBodyInputAuthCellIdentifier = "kMineBodyInputAuthCellIdentifier" |
| 16 | lazy var tableView: UITableView = { | 16 | lazy var tableView: UITableView = { |
| 17 | let tableView = UITableView(frame: .zero, style: .plain) | 17 | let tableView = UITableView(frame: .zero, style: .plain) |
| 18 | tableView.delegate = self | 18 | tableView.delegate = self |
| @@ -23,7 +23,6 @@ class CNLiveMineInputViewController : CNLiveBaseViewController, UITableViewDeleg | @@ -23,7 +23,6 @@ class CNLiveMineInputViewController : CNLiveBaseViewController, UITableViewDeleg | ||
| 23 | tableView.tableFooterView = UIView.init() | 23 | tableView.tableFooterView = UIView.init() |
| 24 | tableView.contentInsetAdjustmentBehavior = .scrollableAxes | 24 | tableView.contentInsetAdjustmentBehavior = .scrollableAxes |
| 25 | tableView.separatorStyle = .none | 25 | tableView.separatorStyle = .none |
| 26 | - tableView.register(MineBodyInputAuthCell.self, forCellReuseIdentifier: kMineBodyInputAuthCellIdentifier) | ||
| 27 | return tableView | 26 | return tableView |
| 28 | }() | 27 | }() |
| 29 | 28 | ||
| @@ -106,13 +105,16 @@ class CNLiveMineInputViewController : CNLiveBaseViewController, UITableViewDeleg | @@ -106,13 +105,16 @@ class CNLiveMineInputViewController : CNLiveBaseViewController, UITableViewDeleg | ||
| 106 | CNLiveMineViewModel.requestsStandInfo(identityId: "\(_listModel.id)", type: .nodate) {[weak self] result, respStatue in | 105 | CNLiveMineViewModel.requestsStandInfo(identityId: "\(_listModel.id)", type: .nodate) {[weak self] result, respStatue in |
| 107 | if respStatue == .success { | 106 | if respStatue == .success { |
| 108 | self?.dataArray.addObjects(from: result as! [Any]) | 107 | self?.dataArray.addObjects(from: result as! [Any]) |
| 109 | - self?.tableView.reloadData() | ||
| 110 | if (self?.dataArray.count)! > 0 { | 108 | if (self?.dataArray.count)! > 0 { |
| 111 | self?.sendButton.isHidden = false | 109 | self?.sendButton.isHidden = false |
| 112 | self?.tipLabel.isHidden = false | 110 | self?.tipLabel.isHidden = false |
| 113 | self?.tableView.tableHeaderView = self?.setupHeaderAndFooter(is_last: false) | 111 | self?.tableView.tableHeaderView = self?.setupHeaderAndFooter(is_last: false) |
| 114 | self?.tableView.tableFooterView = self?.setupHeaderAndFooter(is_last: true) | 112 | self?.tableView.tableFooterView = self?.setupHeaderAndFooter(is_last: true) |
| 113 | + for i in 0..<(self?.dataArray.count)! { | ||
| 114 | + self?.tableView.register(MineBodyInputAuthCell.self, forCellReuseIdentifier: CNLiveMineInputViewController.kMineBodyInputAuthCellIdentifier+"\(i)") | ||
| 115 | + } | ||
| 115 | } | 116 | } |
| 117 | + self?.tableView.reloadData() | ||
| 116 | } | 118 | } |
| 117 | } | 119 | } |
| 118 | } | 120 | } |
| @@ -183,7 +185,7 @@ extension CNLiveMineInputViewController { | @@ -183,7 +185,7 @@ extension CNLiveMineInputViewController { | ||
| 183 | 185 | ||
| 184 | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | 186 | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { |
| 185 | 187 | ||
| 186 | - let cell = tableView.dequeueReusableCell(withIdentifier: kMineBodyInputAuthCellIdentifier) as! MineBodyInputAuthCell | 188 | + let cell = tableView.dequeueReusableCell(withIdentifier: CNLiveMineInputViewController.kMineBodyInputAuthCellIdentifier+"\(indexPath.row)") as! MineBodyInputAuthCell |
| 187 | cell.setListModel(infoModel: self.dataArray[indexPath.row] as! MineStandInfoModel, is_last: indexPath.row == self.dataArray.count - 1) {[weak self] type in | 189 | cell.setListModel(infoModel: self.dataArray[indexPath.row] as! MineStandInfoModel, is_last: indexPath.row == self.dataArray.count - 1) {[weak self] type in |
| 188 | if type == .end { | 190 | if type == .end { |
| 189 | let is_result = self?.inspectResult() | 191 | let is_result = self?.inspectResult() |
metaCode/Classes/Main/MinePage/Controller/CNLiveMineQuestViewController.swift
| @@ -6,14 +6,17 @@ | @@ -6,14 +6,17 @@ | ||
| 6 | // | 6 | // |
| 7 | 7 | ||
| 8 | import Foundation | 8 | import Foundation |
| 9 | +import EmptyDataSet_Swift | ||
| 9 | 10 | ||
| 10 | -class CNLiveMineQuestViewController: CNLiveBaseViewController, UITableViewDelegate, UITableViewDataSource { | 11 | +class CNLiveMineQuestViewController: CNLiveBaseViewController, UITableViewDelegate, UITableViewDataSource, EmptyDataSetSource, EmptyDataSetDelegate { |
| 11 | 12 | ||
| 12 | let kMineBodyFourViewCellIdentifier = "kMineBodyFourViewCellIdentifier" | 13 | let kMineBodyFourViewCellIdentifier = "kMineBodyFourViewCellIdentifier" |
| 13 | lazy var tableView: UITableView = { | 14 | lazy var tableView: UITableView = { |
| 14 | let tableView = UITableView.init(frame: .zero, style: .plain) | 15 | let tableView = UITableView.init(frame: .zero, style: .plain) |
| 15 | tableView.delegate = self | 16 | tableView.delegate = self |
| 16 | tableView.dataSource = self | 17 | tableView.dataSource = self |
| 18 | + tableView.emptyDataSetSource = self | ||
| 19 | + tableView.emptyDataSetDelegate = self | ||
| 17 | tableView.backgroundColor = .clear | 20 | tableView.backgroundColor = .clear |
| 18 | tableView.separatorStyle = .none | 21 | tableView.separatorStyle = .none |
| 19 | tableView.register(MineBodyFourViewCell.self, forCellReuseIdentifier: kMineBodyFourViewCellIdentifier) | 22 | tableView.register(MineBodyFourViewCell.self, forCellReuseIdentifier: kMineBodyFourViewCellIdentifier) |
| @@ -61,6 +64,7 @@ class CNLiveMineQuestViewController: CNLiveBaseViewController, UITableViewDelega | @@ -61,6 +64,7 @@ class CNLiveMineQuestViewController: CNLiveBaseViewController, UITableViewDelega | ||
| 61 | }() | 64 | }() |
| 62 | 65 | ||
| 63 | var _checkModel: MinePointCheckInModel! | 66 | var _checkModel: MinePointCheckInModel! |
| 67 | + var network_type: CNLiveMineResponseType! | ||
| 64 | init(checkModel:MinePointCheckInModel) { | 68 | init(checkModel:MinePointCheckInModel) { |
| 65 | super.init(nibName:nil, bundle:nil) | 69 | super.init(nibName:nil, bundle:nil) |
| 66 | _checkModel = checkModel | 70 | _checkModel = checkModel |
| @@ -89,14 +93,65 @@ class CNLiveMineQuestViewController: CNLiveBaseViewController, UITableViewDelega | @@ -89,14 +93,65 @@ class CNLiveMineQuestViewController: CNLiveBaseViewController, UITableViewDelega | ||
| 89 | func loadDataWithTaskList() { | 93 | func loadDataWithTaskList() { |
| 90 | CNLiveMineViewModel.requestWithTaskList { result, respStatue in | 94 | CNLiveMineViewModel.requestWithTaskList { result, respStatue in |
| 91 | if respStatue == .success { | 95 | if respStatue == .success { |
| 96 | + self.network_type = .success | ||
| 92 | self.dataArray.addObjects(from: result as! [MineTaskCheckListModel]) | 97 | self.dataArray.addObjects(from: result as! [MineTaskCheckListModel]) |
| 93 | self.tableView.reloadData() | 98 | self.tableView.reloadData() |
| 99 | + }else if (respStatue == .noNetwork) { | ||
| 100 | + self.network_type = .noNetwork | ||
| 101 | + self.tableView.reloadEmptyDataSet() | ||
| 102 | + } else { | ||
| 103 | + self.network_type = .failed | ||
| 104 | + self.tableView.reloadEmptyDataSet() | ||
| 94 | } | 105 | } |
| 95 | } | 106 | } |
| 96 | } | 107 | } |
| 97 | } | 108 | } |
| 98 | 109 | ||
| 99 | extension CNLiveMineQuestViewController { | 110 | extension CNLiveMineQuestViewController { |
| 111 | + | ||
| 112 | + func image(forEmptyDataSet scrollView: UIScrollView) -> UIImage? { | ||
| 113 | + if network_type == .failed || network_type == .unkonw { | ||
| 114 | + return UIImage(named: "mine_list_source_unusual_failed") | ||
| 115 | + } | ||
| 116 | + if network_type == .noNetwork { | ||
| 117 | + return UIImage(named: "mine_list_source_unusual_noNet") | ||
| 118 | + } | ||
| 119 | + return UIImage(named: "mine_list_source_unusual_empty") | ||
| 120 | + } | ||
| 121 | + | ||
| 122 | + func title(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? { | ||
| 123 | + var defult_string = "" | ||
| 124 | + if network_type == .failed || network_type == .unkonw { | ||
| 125 | + defult_string = "接口请求错误,刷新试试~" | ||
| 126 | + } | ||
| 127 | + if network_type == .noNetwork { | ||
| 128 | + defult_string = "网络开小差了,刷新试试~" | ||
| 129 | + } | ||
| 130 | + if dataArray.count == 0 && network_type == .success{ | ||
| 131 | + defult_string = "暂无任务~" | ||
| 132 | + } | ||
| 133 | + return NSAttributedString(string: defult_string, attributes: [.font: Font_17,.foregroundColor: HexColor("#666666")!]) | ||
| 134 | + } | ||
| 135 | + | ||
| 136 | + func buttonTitle(forEmptyDataSet scrollView: UIScrollView, for state: UIControl.State) -> NSAttributedString? { | ||
| 137 | + if (network_type == .failed || network_type == .noNetwork) { | ||
| 138 | + let attributes = [NSAttributedString.Key.font:Font_16_Fit, | ||
| 139 | + NSAttributedString.Key.foregroundColor: HexColor("#609BFF")] | ||
| 140 | + return NSAttributedString(string: "刷新", attributes: attributes as [NSAttributedString.Key : Any]) | ||
| 141 | + } | ||
| 142 | + return nil | ||
| 143 | + } | ||
| 144 | + | ||
| 145 | + func backgroundColor(forEmptyDataSet scrollView: UIScrollView) -> UIColor? { | ||
| 146 | + return UIColor.white | ||
| 147 | + } | ||
| 148 | + | ||
| 149 | + func emptyDataSet(_ scrollView: UIScrollView, didTapView view: UIView) { | ||
| 150 | + loadDataWithTaskList() | ||
| 151 | + } | ||
| 152 | +} | ||
| 153 | + | ||
| 154 | +extension CNLiveMineQuestViewController { | ||
| 100 | func numberOfSections(in tableView: UITableView) -> Int { | 155 | func numberOfSections(in tableView: UITableView) -> Int { |
| 101 | return 1 | 156 | return 1 |
| 102 | } | 157 | } |
metaCode/Classes/Main/MinePage/Controller/CNLiveMineViewController.swift
| @@ -135,9 +135,9 @@ extension CNLiveMineViewController { | @@ -135,9 +135,9 @@ extension CNLiveMineViewController { | ||
| 135 | } | 135 | } |
| 136 | 136 | ||
| 137 | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | 137 | func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { |
| 138 | - if indexPath.section == 0 { | ||
| 139 | - self.navigationController?.pushViewController(CNLiveMineQuestViewController.init(checkModel: checkModel), animated: true) | ||
| 140 | - } | 138 | +// if indexPath.section == 0 { |
| 139 | +// self.navigationController?.pushViewController(CNLiveMineQuestViewController.init(checkModel: checkModel), animated: true) | ||
| 140 | +// } | ||
| 141 | if indexPath.section == 1 { | 141 | if indexPath.section == 1 { |
| 142 | self.navigationController?.pushViewController(CNLiveMineAddInfoViewController.init(show_type: .info), animated: true) | 142 | self.navigationController?.pushViewController(CNLiveMineAddInfoViewController.init(show_type: .info), animated: true) |
| 143 | } | 143 | } |
metaCode/Classes/Main/MinePage/View/CNLiveMineBodyListView.swift
| @@ -7,6 +7,7 @@ | @@ -7,6 +7,7 @@ | ||
| 7 | 7 | ||
| 8 | import Foundation | 8 | import Foundation |
| 9 | import Kingfisher | 9 | import Kingfisher |
| 10 | +import APButton | ||
| 10 | 11 | ||
| 11 | class MineBodyOneListViewCell : UITableViewCell { | 12 | class MineBodyOneListViewCell : UITableViewCell { |
| 12 | 13 | ||
| @@ -59,6 +60,7 @@ class MineBodyOneListViewCell : UITableViewCell { | @@ -59,6 +60,7 @@ class MineBodyOneListViewCell : UITableViewCell { | ||
| 59 | super.init(style: style, reuseIdentifier: reuseIdentifier) | 60 | super.init(style: style, reuseIdentifier: reuseIdentifier) |
| 60 | self.selectionStyle = .none | 61 | self.selectionStyle = .none |
| 61 | self.backgroundColor = .clear | 62 | self.backgroundColor = .clear |
| 63 | + contentView.backgroundColor = .clear | ||
| 62 | 64 | ||
| 63 | addSubview(mainView) | 65 | addSubview(mainView) |
| 64 | mainView.addSubview(headerView) | 66 | mainView.addSubview(headerView) |
| @@ -194,6 +196,7 @@ class MineBodyTwoListViewCell : UITableViewCell { | @@ -194,6 +196,7 @@ class MineBodyTwoListViewCell : UITableViewCell { | ||
| 194 | super.init(style: style, reuseIdentifier: reuseIdentifier) | 196 | super.init(style: style, reuseIdentifier: reuseIdentifier) |
| 195 | self.selectionStyle = .none | 197 | self.selectionStyle = .none |
| 196 | self.backgroundColor = .clear | 198 | self.backgroundColor = .clear |
| 199 | + contentView.backgroundColor = .clear | ||
| 197 | 200 | ||
| 198 | addSubview(mainView) | 201 | addSubview(mainView) |
| 199 | mainView.addSubview(headerView) | 202 | mainView.addSubview(headerView) |
| @@ -298,6 +301,7 @@ class MineBodyThreeViewCell: UITableViewCell { | @@ -298,6 +301,7 @@ class MineBodyThreeViewCell: UITableViewCell { | ||
| 298 | let mainView = UIImageView.init() | 301 | let mainView = UIImageView.init() |
| 299 | mainView.backgroundColor = .clear | 302 | mainView.backgroundColor = .clear |
| 300 | mainView.contentMode = .scaleToFill | 303 | mainView.contentMode = .scaleToFill |
| 304 | + mainView.isUserInteractionEnabled = true | ||
| 301 | mainView.image = UIImage(named: "mine_header_point_back") | 305 | mainView.image = UIImage(named: "mine_header_point_back") |
| 302 | return mainView | 306 | return mainView |
| 303 | }() | 307 | }() |
| @@ -313,11 +317,12 @@ class MineBodyThreeViewCell: UITableViewCell { | @@ -313,11 +317,12 @@ class MineBodyThreeViewCell: UITableViewCell { | ||
| 313 | lazy var pointButton: UIButton = { | 317 | lazy var pointButton: UIButton = { |
| 314 | let pointButton = UIButton.init(type: .custom) | 318 | let pointButton = UIButton.init(type: .custom) |
| 315 | pointButton.backgroundColor = .clear | 319 | pointButton.backgroundColor = .clear |
| 316 | - pointButton.setTitle(" 去赚积分", for: .normal) | 320 | + pointButton.setTitle(" 去赚积分", for: .normal) |
| 317 | pointButton.titleLabel?.font = Font_12 | 321 | pointButton.titleLabel?.font = Font_12 |
| 318 | pointButton.imageView?.contentMode = .scaleToFill | 322 | pointButton.imageView?.contentMode = .scaleToFill |
| 319 | pointButton.setTitleColor(HexColor("#FFE4C4"), for: .normal) | 323 | pointButton.setTitleColor(HexColor("#FFE4C4"), for: .normal) |
| 320 | pointButton.setImage(UIImage(named: "mine_header_point_gold_coin"), for: .normal) | 324 | pointButton.setImage(UIImage(named: "mine_header_point_gold_coin"), for: .normal) |
| 325 | + pointButton.addTarget(self, action: #selector(pushMineQuestView), for: .touchUpInside) | ||
| 321 | return pointButton | 326 | return pointButton |
| 322 | }() | 327 | }() |
| 323 | 328 | ||
| @@ -350,16 +355,7 @@ class MineBodyThreeViewCell: UITableViewCell { | @@ -350,16 +355,7 @@ class MineBodyThreeViewCell: UITableViewCell { | ||
| 350 | balanceLabel.textAlignment = .left | 355 | balanceLabel.textAlignment = .left |
| 351 | return balanceLabel | 356 | return balanceLabel |
| 352 | }() | 357 | }() |
| 353 | - | ||
| 354 | - lazy var balanceNumberLabel: UILabel = { | ||
| 355 | - let balanceNumberLabel = UILabel.init() | ||
| 356 | - balanceNumberLabel.text = "0" | ||
| 357 | - balanceNumberLabel.font = BoldFont_19_Fit | ||
| 358 | - balanceNumberLabel.textAlignment = .left | ||
| 359 | - balanceNumberLabel.textColor = HexColor("#FFE4C4") | ||
| 360 | - return balanceNumberLabel | ||
| 361 | - }() | ||
| 362 | - | 358 | + |
| 363 | lazy var pointLabel: UILabel = { | 359 | lazy var pointLabel: UILabel = { |
| 364 | let pointLabel = UILabel.init() | 360 | let pointLabel = UILabel.init() |
| 365 | pointLabel.text = "积分" | 361 | pointLabel.text = "积分" |
| @@ -369,13 +365,24 @@ class MineBodyThreeViewCell: UITableViewCell { | @@ -369,13 +365,24 @@ class MineBodyThreeViewCell: UITableViewCell { | ||
| 369 | return pointLabel | 365 | return pointLabel |
| 370 | }() | 366 | }() |
| 371 | 367 | ||
| 372 | - lazy var pointNumberLabel: UILabel = { | ||
| 373 | - let pointNumberLabel = UILabel.init() | ||
| 374 | - pointNumberLabel.font = BoldFont_19_Fit | ||
| 375 | - pointNumberLabel.text = "0" | ||
| 376 | - pointNumberLabel.textAlignment = .left | ||
| 377 | - pointNumberLabel.textColor = HexColor("#FFE4C4") | ||
| 378 | - return pointNumberLabel | 368 | + lazy var balanceNumberButton: APButton = { |
| 369 | + let balanceNumberButton = APButton() | ||
| 370 | + balanceNumberButton.setTitle("0", for: .normal) | ||
| 371 | + balanceNumberButton.activityIndicator.color = .white | ||
| 372 | + balanceNumberButton.titleLabel?.font = BoldFont_19_Fit | ||
| 373 | + balanceNumberButton.setTitleColor(HexColor("#FFE4C4"), for: .normal) | ||
| 374 | + balanceNumberButton.addTarget(self, action: #selector(pushBalanceMothed), for: .touchUpInside) | ||
| 375 | + return balanceNumberButton | ||
| 376 | + }() | ||
| 377 | + | ||
| 378 | + lazy var pointNumberButton: APButton = { | ||
| 379 | + let pointNumberButton = APButton() | ||
| 380 | + pointNumberButton.activityIndicator.color = .white | ||
| 381 | + pointNumberButton.titleLabel?.font = BoldFont_19_Fit | ||
| 382 | + pointNumberButton.setTitle("0", for: .normal) | ||
| 383 | + pointNumberButton.setTitleColor(HexColor("#FFE4C4"), for: .normal) | ||
| 384 | + pointNumberButton.addTarget(self, action: #selector(pushPointsMothed), for: .touchUpInside) | ||
| 385 | + return pointNumberButton | ||
| 379 | }() | 386 | }() |
| 380 | 387 | ||
| 381 | var _checkModel : MinePointCheckInModel? | 388 | var _checkModel : MinePointCheckInModel? |
| @@ -385,8 +392,10 @@ class MineBodyThreeViewCell: UITableViewCell { | @@ -385,8 +392,10 @@ class MineBodyThreeViewCell: UITableViewCell { | ||
| 385 | } | 392 | } |
| 386 | set{ | 393 | set{ |
| 387 | _checkModel = newValue | 394 | _checkModel = newValue |
| 388 | - balanceNumberLabel.text = newValue?.money | ||
| 389 | - pointNumberLabel.text = newValue?.integral | 395 | + balanceNumberButton.stopAnimating() |
| 396 | + pointNumberButton.stopAnimating() | ||
| 397 | + balanceNumberButton.setTitle(newValue?.money, for: .normal) | ||
| 398 | + pointNumberButton.setTitle(newValue?.integral, for: .normal) | ||
| 390 | } | 399 | } |
| 391 | } | 400 | } |
| 392 | 401 | ||
| @@ -394,6 +403,7 @@ class MineBodyThreeViewCell: UITableViewCell { | @@ -394,6 +403,7 @@ class MineBodyThreeViewCell: UITableViewCell { | ||
| 394 | super.init(style: style, reuseIdentifier: reuseIdentifier) | 403 | super.init(style: style, reuseIdentifier: reuseIdentifier) |
| 395 | self.selectionStyle = .none | 404 | self.selectionStyle = .none |
| 396 | self.backgroundColor = .clear | 405 | self.backgroundColor = .clear |
| 406 | + contentView.backgroundColor = .clear | ||
| 397 | 407 | ||
| 398 | addSubview(mainView) | 408 | addSubview(mainView) |
| 399 | mainView.addSubview(moreView) | 409 | mainView.addSubview(moreView) |
| @@ -402,12 +412,14 @@ class MineBodyThreeViewCell: UITableViewCell { | @@ -402,12 +412,14 @@ class MineBodyThreeViewCell: UITableViewCell { | ||
| 402 | 412 | ||
| 403 | mainView.addSubview(line_left_label) | 413 | mainView.addSubview(line_left_label) |
| 404 | mainView.addSubview(balanceLabel) | 414 | mainView.addSubview(balanceLabel) |
| 405 | - mainView.addSubview(balanceNumberLabel) | 415 | + mainView.addSubview(balanceNumberButton) |
| 406 | 416 | ||
| 407 | mainView.addSubview(line_right_label) | 417 | mainView.addSubview(line_right_label) |
| 408 | mainView.addSubview(pointLabel) | 418 | mainView.addSubview(pointLabel) |
| 409 | - mainView.addSubview(pointNumberLabel) | 419 | + mainView.addSubview(pointNumberButton) |
| 410 | 420 | ||
| 421 | + pointNumberButton.startAnimating() | ||
| 422 | + balanceNumberButton.startAnimating() | ||
| 411 | 423 | ||
| 412 | setupConstraints() | 424 | setupConstraints() |
| 413 | } | 425 | } |
| @@ -426,7 +438,7 @@ class MineBodyThreeViewCell: UITableViewCell { | @@ -426,7 +438,7 @@ class MineBodyThreeViewCell: UITableViewCell { | ||
| 426 | } | 438 | } |
| 427 | moreView.snp.makeConstraints { make in | 439 | moreView.snp.makeConstraints { make in |
| 428 | make.centerY.equalTo(pointButton) | 440 | make.centerY.equalTo(pointButton) |
| 429 | - make.left.equalTo(pointButton.snp.right) | 441 | + make.left.equalTo(pointButton.snp.right).offset(-5) |
| 430 | } | 442 | } |
| 431 | questLabel.snp.makeConstraints { make in | 443 | questLabel.snp.makeConstraints { make in |
| 432 | make.left.equalToSuperview().offset(10) | 444 | make.left.equalToSuperview().offset(10) |
| @@ -444,7 +456,7 @@ class MineBodyThreeViewCell: UITableViewCell { | @@ -444,7 +456,7 @@ class MineBodyThreeViewCell: UITableViewCell { | ||
| 444 | make.left.equalTo(line_left_label.snp.right).offset(10) | 456 | make.left.equalTo(line_left_label.snp.right).offset(10) |
| 445 | make.top.equalToSuperview().offset(15) | 457 | make.top.equalToSuperview().offset(15) |
| 446 | } | 458 | } |
| 447 | - balanceNumberLabel.snp.makeConstraints { make in | 459 | + balanceNumberButton.snp.makeConstraints { make in |
| 448 | make.left.equalTo(line_left_label.snp.right).offset(10) | 460 | make.left.equalTo(line_left_label.snp.right).offset(10) |
| 449 | make.centerY.equalToSuperview().offset(10) | 461 | make.centerY.equalToSuperview().offset(10) |
| 450 | } | 462 | } |
| @@ -459,12 +471,24 @@ class MineBodyThreeViewCell: UITableViewCell { | @@ -459,12 +471,24 @@ class MineBodyThreeViewCell: UITableViewCell { | ||
| 459 | make.centerY.equalTo(balanceLabel) | 471 | make.centerY.equalTo(balanceLabel) |
| 460 | make.left.equalTo(line_right_label.snp.right).offset(10) | 472 | make.left.equalTo(line_right_label.snp.right).offset(10) |
| 461 | } | 473 | } |
| 462 | - pointNumberLabel.snp.makeConstraints { make in | ||
| 463 | - make.centerY.equalTo(balanceNumberLabel) | 474 | + pointNumberButton.snp.makeConstraints { make in |
| 475 | + make.centerY.equalTo(balanceNumberButton) | ||
| 464 | make.left.equalTo(line_right_label.snp.right).offset(10) | 476 | make.left.equalTo(line_right_label.snp.right).offset(10) |
| 465 | } | 477 | } |
| 466 | 478 | ||
| 467 | } | 479 | } |
| 480 | + | ||
| 481 | + @objc func pushBalanceMothed(sender: APButton) { | ||
| 482 | + currentViewController()?.navigationController?.pushViewController(CNLiveMineEarnViewController.init(index: 1, checkModel: _checkModel!), animated: true) | ||
| 483 | + } | ||
| 484 | + | ||
| 485 | + @objc func pushPointsMothed(sender: APButton) { | ||
| 486 | + currentViewController()?.navigationController?.pushViewController(CNLiveMineEarnViewController.init(index: 0, checkModel: _checkModel!), animated: true) | ||
| 487 | + } | ||
| 488 | + | ||
| 489 | + @objc func pushMineQuestView() { | ||
| 490 | + currentViewController()?.navigationController?.pushViewController(CNLiveMineQuestViewController.init(checkModel: _checkModel!), animated: true) | ||
| 491 | + } | ||
| 468 | 492 | ||
| 469 | 493 | ||
| 470 | required init?(coder: NSCoder) { | 494 | required init?(coder: NSCoder) { |
| @@ -478,6 +502,7 @@ class MineBodyFourViewCell: UITableViewCell { | @@ -478,6 +502,7 @@ class MineBodyFourViewCell: UITableViewCell { | ||
| 478 | lazy var mainView: UIView = { | 502 | lazy var mainView: UIView = { |
| 479 | let mainView = UIView.init() | 503 | let mainView = UIView.init() |
| 480 | mainView.backgroundColor = .white | 504 | mainView.backgroundColor = .white |
| 505 | + mainView.isUserInteractionEnabled = true | ||
| 481 | return mainView | 506 | return mainView |
| 482 | }() | 507 | }() |
| 483 | 508 | ||
| @@ -505,16 +530,18 @@ class MineBodyFourViewCell: UITableViewCell { | @@ -505,16 +530,18 @@ class MineBodyFourViewCell: UITableViewCell { | ||
| 505 | return descLabel | 530 | return descLabel |
| 506 | }() | 531 | }() |
| 507 | 532 | ||
| 508 | - lazy var shareBtn: UIButton = { | ||
| 509 | - let shareBtn = UIButton.init(type: .custom) | 533 | + lazy var shareBtn: APButton = { |
| 534 | + let shareBtn = APButton() | ||
| 510 | shareBtn.frame = CGRect(x: 0, y: 0, width: 70, height: 30) | 535 | shareBtn.frame = CGRect(x: 0, y: 0, width: 70, height: 30) |
| 511 | shareBtn.setTitleColor(.white, for: .normal) | 536 | shareBtn.setTitleColor(.white, for: .normal) |
| 512 | shareBtn.titleLabel?.font = Font_12 | 537 | shareBtn.titleLabel?.font = Font_12 |
| 513 | shareBtn.layer.cornerRadius = 15 | 538 | shareBtn.layer.cornerRadius = 15 |
| 514 | shareBtn.layer.masksToBounds = true | 539 | shareBtn.layer.masksToBounds = true |
| 540 | + shareBtn.activityIndicator.color = UIColor.white | ||
| 515 | shareBtn.setTitle("去完成", for: .normal) | 541 | shareBtn.setTitle("去完成", for: .normal) |
| 516 | shareBtn.setImage(UIImage(named: "mine_list_icon_right_white_more"), for: .normal) | 542 | shareBtn.setImage(UIImage(named: "mine_list_icon_right_white_more"), for: .normal) |
| 517 | shareBtn.setupButtonImageAndTitlePossitionWith(padding: 0, style: .right) | 543 | shareBtn.setupButtonImageAndTitlePossitionWith(padding: 0, style: .right) |
| 544 | + shareBtn.addTarget(self, action: #selector(checkInAction), for: .touchUpInside) | ||
| 518 | return shareBtn | 545 | return shareBtn |
| 519 | }() | 546 | }() |
| 520 | 547 | ||
| @@ -522,6 +549,7 @@ class MineBodyFourViewCell: UITableViewCell { | @@ -522,6 +549,7 @@ class MineBodyFourViewCell: UITableViewCell { | ||
| 522 | super.init(style: style, reuseIdentifier: reuseIdentifier) | 549 | super.init(style: style, reuseIdentifier: reuseIdentifier) |
| 523 | self.selectionStyle = .none | 550 | self.selectionStyle = .none |
| 524 | self.backgroundColor = .clear | 551 | self.backgroundColor = .clear |
| 552 | + contentView.backgroundColor = .clear | ||
| 525 | 553 | ||
| 526 | addSubview(mainView) | 554 | addSubview(mainView) |
| 527 | mainView.addSubview(iconView) | 555 | mainView.addSubview(iconView) |
| @@ -565,7 +593,17 @@ class MineBodyFourViewCell: UITableViewCell { | @@ -565,7 +593,17 @@ class MineBodyFourViewCell: UITableViewCell { | ||
| 565 | nameLabel.text = listModel.title ?? "" | 593 | nameLabel.text = listModel.title ?? "" |
| 566 | descLabel.text = "积分值+\(listModel.score ?? "")" | 594 | descLabel.text = "积分值+\(listModel.score ?? "")" |
| 567 | if listModel.taskId!.contains("check_in") { | 595 | if listModel.taskId!.contains("check_in") { |
| 568 | - shareBtn.setTitle("去签到", for: .normal) | 596 | + if listModel.status!.contains("false") { |
| 597 | + shareBtn.setTitle("去签到", for: .normal) | ||
| 598 | + }else{ | ||
| 599 | + shareBtn.titleEdgeInsets = UIEdgeInsets.zero | ||
| 600 | + shareBtn.imageEdgeInsets = UIEdgeInsets.zero | ||
| 601 | + shareBtn.setTitleColor(HexColor("#999999"), for: .normal) | ||
| 602 | + shareBtn.setTitle("已完成", for: .normal) | ||
| 603 | + shareBtn.setImage(nil, for: .normal) | ||
| 604 | + shareBtn.isUserInteractionEnabled = false | ||
| 605 | + shareBtn.setGradient(colors: [HexColor("#f9f9f9")!,HexColor("#f9f9f9")!], startPoint: CGPoint(x: 0, y: 0.5), endPoint: CGPoint(x: 1, y: 0.5)) | ||
| 606 | + } | ||
| 569 | } | 607 | } |
| 570 | } | 608 | } |
| 571 | 609 | ||
| @@ -573,6 +611,20 @@ class MineBodyFourViewCell: UITableViewCell { | @@ -573,6 +611,20 @@ class MineBodyFourViewCell: UITableViewCell { | ||
| 573 | fatalError("init(coder:) has not been implemented") | 611 | fatalError("init(coder:) has not been implemented") |
| 574 | } | 612 | } |
| 575 | 613 | ||
| 614 | + @objc func checkInAction(sender: APButton) { | ||
| 615 | + sender.startAnimating() | ||
| 616 | + showLoading(message: "") | ||
| 617 | + CNLiveMineViewModel.requestWithCheckInAction { [self] result, respStatue in | ||
| 618 | + sender.stopAnimating() | ||
| 619 | + showMessage(message: "签到成功") | ||
| 620 | + shareBtn.titleEdgeInsets = UIEdgeInsets.zero | ||
| 621 | + shareBtn.imageEdgeInsets = UIEdgeInsets.zero | ||
| 622 | + shareBtn.setTitleColor(HexColor("#999999"), for: .normal) | ||
| 623 | + shareBtn.setTitle("已完成", for: .normal) | ||
| 624 | + shareBtn.setImage(UIImage(), for: .normal) | ||
| 625 | + shareBtn.setGradient(colors: [HexColor("#f9f9f9")!,HexColor("#f9f9f9")!], startPoint: CGPoint(x: 0, y: 0.5), endPoint: CGPoint(x: 1, y: 0.5)) | ||
| 626 | + } | ||
| 627 | + } | ||
| 576 | } | 628 | } |
| 577 | 629 | ||
| 578 | class MIneBodyFiveViewCell: UITableViewCell { | 630 | class MIneBodyFiveViewCell: UITableViewCell { |
| @@ -617,6 +669,7 @@ class MIneBodyFiveViewCell: UITableViewCell { | @@ -617,6 +669,7 @@ class MIneBodyFiveViewCell: UITableViewCell { | ||
| 617 | super.init(style: style, reuseIdentifier: reuseIdentifier) | 669 | super.init(style: style, reuseIdentifier: reuseIdentifier) |
| 618 | selectionStyle = .none | 670 | selectionStyle = .none |
| 619 | backgroundColor = .clear | 671 | backgroundColor = .clear |
| 672 | + contentView.backgroundColor = .clear | ||
| 620 | 673 | ||
| 621 | addSubview(mainView) | 674 | addSubview(mainView) |
| 622 | mainView.addSubview(nameLabel) | 675 | mainView.addSubview(nameLabel) |
| @@ -685,6 +738,7 @@ enum CNLiveBodyInputAuthShowType { | @@ -685,6 +738,7 @@ enum CNLiveBodyInputAuthShowType { | ||
| 685 | typealias resultInputBlock = (_ type: CNLiveBodyInputAuthShowType) -> Void | 738 | typealias resultInputBlock = (_ type: CNLiveBodyInputAuthShowType) -> Void |
| 686 | class MineBodyInputAuthCell: UITableViewCell, UITextFieldDelegate { | 739 | class MineBodyInputAuthCell: UITableViewCell, UITextFieldDelegate { |
| 687 | 740 | ||
| 741 | + var identifier = false | ||
| 688 | lazy var mainView: UIView = { | 742 | lazy var mainView: UIView = { |
| 689 | let mainView = UIView.init(frame: CGRect.zero) | 743 | let mainView = UIView.init(frame: CGRect.zero) |
| 690 | mainView.backgroundColor = .white | 744 | mainView.backgroundColor = .white |
| @@ -837,6 +891,12 @@ class MineBodyInputAuthCell: UITableViewCell, UITextFieldDelegate { | @@ -837,6 +891,12 @@ class MineBodyInputAuthCell: UITableViewCell, UITextFieldDelegate { | ||
| 837 | } | 891 | } |
| 838 | 892 | ||
| 839 | func textFieldShouldEndEditing(_ textField: UITextField) -> Bool { | 893 | func textFieldShouldEndEditing(_ textField: UITextField) -> Bool { |
| 894 | + if textField == contentField { | ||
| 895 | + if contentField.text!.count > _infoModel!.length { | ||
| 896 | + showMessage(message: "\(_infoModel!.name ?? "")最大限制\(_infoModel!.length)个字") | ||
| 897 | + return false | ||
| 898 | + } | ||
| 899 | + } | ||
| 840 | return contentField.resignFirstResponder() | 900 | return contentField.resignFirstResponder() |
| 841 | } | 901 | } |
| 842 | 902 |
metaCode/Classes/Main/MinePage/View/CNLiveMineHeaderView.swift
| @@ -312,44 +312,39 @@ class MineQuestHeaderView: UIView { | @@ -312,44 +312,39 @@ class MineQuestHeaderView: UIView { | ||
| 312 | pointBtn.setTitleColor(.white, for: .normal) | 312 | pointBtn.setTitleColor(.white, for: .normal) |
| 313 | pointBtn.titleLabel?.font = Font_15 | 313 | pointBtn.titleLabel?.font = Font_15 |
| 314 | pointBtn.setupButtonImageAndTitlePossitionWith(padding: 0, style: .right) | 314 | pointBtn.setupButtonImageAndTitlePossitionWith(padding: 0, style: .right) |
| 315 | - pointBtn.addTarget(self, action: #selector(pushEarnRecordAction), for: .touchUpInside) | ||
| 316 | return pointBtn | 315 | return pointBtn |
| 317 | }() | 316 | }() |
| 318 | 317 | ||
| 319 | -// lazy var pointView: UIImageView = { | ||
| 320 | -// | ||
| 321 | -// return <#value#> | ||
| 322 | -// }() | ||
| 323 | - | ||
| 324 | lazy var balanceBtn: UIButton = { | 318 | lazy var balanceBtn: UIButton = { |
| 325 | let balanceBtn = UIButton(type: .custom) | 319 | let balanceBtn = UIButton(type: .custom) |
| 326 | balanceBtn.size = CGSize(width: 102, height: 20) | 320 | balanceBtn.size = CGSize(width: 102, height: 20) |
| 327 | balanceBtn.backgroundColor = .clear | 321 | balanceBtn.backgroundColor = .clear |
| 328 | balanceBtn.setTitle("元码余额收益", for: .normal) | 322 | balanceBtn.setTitle("元码余额收益", for: .normal) |
| 329 | balanceBtn.setTitleColor(.white, for: .normal) | 323 | balanceBtn.setTitleColor(.white, for: .normal) |
| 330 | - balanceBtn.setImage(UIImage(named: "mine_list_icon_right_white_more"), for: .normal) | 324 | +// balanceBtn.setImage(UIImage(named: "mine_list_icon_right_white_more"), for: .normal) |
| 331 | balanceBtn.titleLabel?.font = Font_15 | 325 | balanceBtn.titleLabel?.font = Font_15 |
| 332 | - balanceBtn.setupButtonImageAndTitlePossitionWith(padding: 0, style: .right) | ||
| 333 | - balanceBtn.addTarget(self, action: #selector(pushEarnBalanceAction), for: .touchUpInside) | 326 | +// balanceBtn.setupButtonImageAndTitlePossitionWith(padding: 0, style: .right) |
| 334 | return balanceBtn | 327 | return balanceBtn |
| 335 | }() | 328 | }() |
| 336 | 329 | ||
| 337 | - lazy var pointLabel: UILabel = { | ||
| 338 | - let pointLabel = UILabel.init() | ||
| 339 | - pointLabel.text = "0" | ||
| 340 | - pointLabel.textColor = .white | ||
| 341 | - pointLabel.backgroundColor = .clear | ||
| 342 | - pointLabel.font = BoldFont_25_Fit | ||
| 343 | - return pointLabel | 330 | + lazy var pointDescButton: UIButton = { |
| 331 | + let pointDescButton = UIButton.init(type: .custom) | ||
| 332 | + pointDescButton.setTitle("0", for: .normal) | ||
| 333 | + pointDescButton.setTitleColor(.white, for: .normal) | ||
| 334 | + pointDescButton.backgroundColor = .clear | ||
| 335 | + pointDescButton.titleLabel?.font = BoldFont_25_Fit | ||
| 336 | + pointDescButton.addTarget(self, action: #selector(pushEarnRecordAction), for: .touchUpInside) | ||
| 337 | + return pointDescButton | ||
| 344 | }() | 338 | }() |
| 345 | 339 | ||
| 346 | - lazy var balanceLabel: UILabel = { | ||
| 347 | - let balanceLabel = UILabel.init() | ||
| 348 | - balanceLabel.text = "0" | ||
| 349 | - balanceLabel.textColor = .white | ||
| 350 | - balanceLabel.backgroundColor = .clear | ||
| 351 | - balanceLabel.font = BoldFont_25_Fit | ||
| 352 | - return balanceLabel | 340 | + lazy var balanceDescButton: UIButton = { |
| 341 | + let balanceDescButton = UIButton.init(type: .custom) | ||
| 342 | + balanceDescButton.setTitle("0", for: .normal) | ||
| 343 | + balanceDescButton.setTitleColor(.white, for: .normal) | ||
| 344 | + balanceDescButton.backgroundColor = .clear | ||
| 345 | + balanceDescButton.titleLabel?.font = BoldFont_25_Fit | ||
| 346 | + balanceDescButton.addTarget(self, action: #selector(pushEarnBalanceAction), for: .touchUpInside) | ||
| 347 | + return balanceDescButton | ||
| 353 | }() | 348 | }() |
| 354 | 349 | ||
| 355 | lazy var descBtn: UIButton = { | 350 | lazy var descBtn: UIButton = { |
| @@ -371,12 +366,12 @@ class MineQuestHeaderView: UIView { | @@ -371,12 +366,12 @@ class MineQuestHeaderView: UIView { | ||
| 371 | addSubview(mainView) | 366 | addSubview(mainView) |
| 372 | mainView.addSubview(pointBtn) | 367 | mainView.addSubview(pointBtn) |
| 373 | mainView.addSubview(balanceBtn) | 368 | mainView.addSubview(balanceBtn) |
| 374 | - mainView.addSubview(pointLabel) | ||
| 375 | - mainView.addSubview(balanceLabel) | 369 | + mainView.addSubview(pointDescButton) |
| 370 | + mainView.addSubview(balanceDescButton) | ||
| 376 | mainView.addSubview(descBtn) | 371 | mainView.addSubview(descBtn) |
| 377 | 372 | ||
| 378 | - balanceLabel.text = checkModel.money | ||
| 379 | - pointLabel.text = checkModel.integral | 373 | + balanceDescButton.setTitle(checkModel.money, for: .normal) |
| 374 | + pointDescButton.setTitle(checkModel.integral, for: .normal) | ||
| 380 | 375 | ||
| 381 | setupConstraints() | 376 | setupConstraints() |
| 382 | } | 377 | } |
| @@ -397,11 +392,11 @@ class MineQuestHeaderView: UIView { | @@ -397,11 +392,11 @@ class MineQuestHeaderView: UIView { | ||
| 397 | make.centerX.equalToSuperview().offset(50) | 392 | make.centerX.equalToSuperview().offset(50) |
| 398 | make.top.equalToSuperview().offset(15) | 393 | make.top.equalToSuperview().offset(15) |
| 399 | } | 394 | } |
| 400 | - pointLabel.snp.makeConstraints { make in | 395 | + pointDescButton.snp.makeConstraints { make in |
| 401 | make.left.equalTo(pointBtn.snp.left) | 396 | make.left.equalTo(pointBtn.snp.left) |
| 402 | make.top.equalTo(pointBtn.snp.bottom).offset(10) | 397 | make.top.equalTo(pointBtn.snp.bottom).offset(10) |
| 403 | } | 398 | } |
| 404 | - balanceLabel.snp.makeConstraints { make in | 399 | + balanceDescButton.snp.makeConstraints { make in |
| 405 | make.left.equalTo(balanceBtn.snp.left) | 400 | make.left.equalTo(balanceBtn.snp.left) |
| 406 | make.top.equalTo(balanceBtn.snp.bottom).offset(10) | 401 | make.top.equalTo(balanceBtn.snp.bottom).offset(10) |
| 407 | } | 402 | } |
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.adjustsFontSizeToFitWidth=true | ||
| 35 | titleLabel.minimumScaleFactor = 14*FontFit | 36 | titleLabel.minimumScaleFactor = 14*FontFit |
| 36 | return titleLabel | 37 | return titleLabel |
| 37 | }() | 38 | }() |
| @@ -133,6 +134,9 @@ class MineStandInfoTableViewCell: UITableViewCell { | @@ -133,6 +134,9 @@ class MineStandInfoTableViewCell: UITableViewCell { | ||
| 133 | let titleLabel = UILabel.init() | 134 | let titleLabel = UILabel.init() |
| 134 | titleLabel.backgroundColor = .clear | 135 | titleLabel.backgroundColor = .clear |
| 135 | titleLabel.textColor = .black | 136 | titleLabel.textColor = .black |
| 137 | + titleLabel.numberOfLines = 0 | ||
| 138 | + titleLabel.adjustsFontSizeToFitWidth=true | ||
| 139 | + titleLabel.lineBreakMode = .byWordWrapping | ||
| 136 | titleLabel.font = BoldFont_18_Fit | 140 | titleLabel.font = BoldFont_18_Fit |
| 137 | return titleLabel | 141 | return titleLabel |
| 138 | }() | 142 | }() |
| @@ -200,19 +204,19 @@ class MineStandInfoTableViewCell: UITableViewCell { | @@ -200,19 +204,19 @@ class MineStandInfoTableViewCell: UITableViewCell { | ||
| 200 | make.left.equalToSuperview().offset(15) | 204 | make.left.equalToSuperview().offset(15) |
| 201 | make.size.equalTo(50) | 205 | make.size.equalTo(50) |
| 202 | } | 206 | } |
| 207 | + timeLabel.snp.makeConstraints { make in | ||
| 208 | + make.centerY.equalToSuperview() | ||
| 209 | + make.right.equalToSuperview().offset(-10) | ||
| 210 | + } | ||
| 203 | titleLabel.snp.makeConstraints { make in | 211 | titleLabel.snp.makeConstraints { make in |
| 204 | make.centerY.equalToSuperview().offset(-15) | 212 | make.centerY.equalToSuperview().offset(-15) |
| 205 | make.left.equalTo(iconView.snp.right).offset(10) | 213 | make.left.equalTo(iconView.snp.right).offset(10) |
| 206 | - make.right.equalToSuperview().offset(-10) | 214 | + make.right.equalToSuperview().offset(-30) |
| 207 | } | 215 | } |
| 208 | numberLabel.snp.makeConstraints { make in | 216 | numberLabel.snp.makeConstraints { make in |
| 209 | make.centerY.equalToSuperview().offset(15) | 217 | make.centerY.equalToSuperview().offset(15) |
| 210 | make.left.equalTo(iconView.snp.right).offset(10) | 218 | make.left.equalTo(iconView.snp.right).offset(10) |
| 211 | } | 219 | } |
| 212 | - timeLabel.snp.makeConstraints { make in | ||
| 213 | - make.centerY.equalToSuperview() | ||
| 214 | - make.right.equalToSuperview().offset(-10) | ||
| 215 | - } | ||
| 216 | } | 220 | } |
| 217 | 221 | ||
| 218 | required init?(coder: NSCoder) { | 222 | required init?(coder: NSCoder) { |
| @@ -313,7 +317,7 @@ class MessageDescTableViewCell: UITableViewCell { | @@ -313,7 +317,7 @@ class MessageDescTableViewCell: UITableViewCell { | ||
| 313 | }() | 317 | }() |
| 314 | 318 | ||
| 315 | lazy var contentLabel: UILabel = { | 319 | lazy var contentLabel: UILabel = { |
| 316 | - let contentLabel = UILabel.init() | 320 | + let contentLabel = UILabel.init(frame: CGRect.zero) |
| 317 | contentLabel.backgroundColor = .white | 321 | contentLabel.backgroundColor = .white |
| 318 | contentLabel.textColor = HexColor("#666666") | 322 | contentLabel.textColor = HexColor("#666666") |
| 319 | contentLabel.lineBreakMode = .byCharWrapping | 323 | contentLabel.lineBreakMode = .byCharWrapping |
| @@ -394,12 +398,13 @@ class MessageDescTableViewCell: UITableViewCell { | @@ -394,12 +398,13 @@ class MessageDescTableViewCell: UITableViewCell { | ||
| 394 | // make.right.equalToSuperview().offset(-10) | 398 | // make.right.equalToSuperview().offset(-10) |
| 395 | // make.height.equalTo(1) | 399 | // make.height.equalTo(1) |
| 396 | // } | 400 | // } |
| 397 | - contentLabel.snp.makeConstraints { make in | ||
| 398 | - make.left.top.equalToSuperview().offset(10) | ||
| 399 | - make.right.equalToSuperview().offset(-10) | ||
| 400 | - make.width.equalTo(KSreenWidth - 110) | ||
| 401 | - make.height.equalTo(0) | ||
| 402 | - } | 401 | + |
| 402 | +// contentLabel.snp.makeConstraints { make in | ||
| 403 | +// make.left.top.equalToSuperview().offset(10) | ||
| 404 | +// make.right.equalToSuperview().offset(-10) | ||
| 405 | +// make.width.equalTo(KSreenWidth - 110) | ||
| 406 | +// make.height.equalTo(0) | ||
| 407 | +// } | ||
| 403 | } | 408 | } |
| 404 | 409 | ||
| 405 | public func setupWithDataSource(listModel: NewsListModel) { | 410 | public func setupWithDataSource(listModel: NewsListModel) { |
| @@ -416,14 +421,15 @@ class MessageDescTableViewCell: UITableViewCell { | @@ -416,14 +421,15 @@ class MessageDescTableViewCell: UITableViewCell { | ||
| 416 | iconView.kf.setImage(with: URL(string: listModel.poster), placeholder: UIImage.imageWithColor(color: .red, size: CGSizeMake(40, 40))) | 421 | iconView.kf.setImage(with: URL(string: listModel.poster), placeholder: UIImage.imageWithColor(color: .red, size: CGSizeMake(40, 40))) |
| 417 | } | 422 | } |
| 418 | cView.snp.updateConstraints { make in | 423 | cView.snp.updateConstraints { make in |
| 419 | - make.height.equalTo(listModel.textHeight + 60) | ||
| 420 | - } | ||
| 421 | - contentLabel.snp.updateConstraints { make in | ||
| 422 | - make.left.top.equalToSuperview().offset(10) | ||
| 423 | - make.right.equalToSuperview().offset(-10) | ||
| 424 | - make.width.equalTo(KSreenWidth - 110) | ||
| 425 | - make.height.equalTo(listModel.textHeight) | 424 | + make.height.equalTo(listModel.textHeight + 30) //20 |
| 426 | } | 425 | } |
| 426 | +// contentLabel.snp.updateConstraints { make in | ||
| 427 | +// make.left.top.equalToSuperview().offset(10) | ||
| 428 | +// make.right.equalToSuperview().offset(-10) | ||
| 429 | +// make.width.equalTo(KSreenWidth - 110) | ||
| 430 | +// make.height.equalTo(listModel.textHeight) | ||
| 431 | +// } | ||
| 432 | + contentLabel.frame = CGRectMake(10, 15, KSreenWidth - 110, listModel.textHeight) | ||
| 427 | } | 433 | } |
| 428 | 434 | ||
| 429 | required init?(coder: NSCoder) { | 435 | required init?(coder: NSCoder) { |
metaCode/Classes/Main/MinePage/ViewModel/CNLiveMineBaseModel.swift
| @@ -302,6 +302,7 @@ class MinePointCheckInModel: BaseModel { | @@ -302,6 +302,7 @@ class MinePointCheckInModel: BaseModel { | ||
| 302 | class MineTaskCheckListModel: BaseModel { | 302 | class MineTaskCheckListModel: BaseModel { |
| 303 | var icon: String? = "" | 303 | var icon: String? = "" |
| 304 | var score: String? = "" | 304 | var score: String? = "" |
| 305 | + /**1 为第一次签到显示签到弹框,其他不显示*/ | ||
| 305 | var status: String? = "" | 306 | var status: String? = "" |
| 306 | var taskId: String? = "" | 307 | var taskId: String? = "" |
| 307 | var taskType: String? = "" | 308 | var taskType: String? = "" |
| @@ -311,6 +312,14 @@ class MineTaskCheckListModel: BaseModel { | @@ -311,6 +312,14 @@ class MineTaskCheckListModel: BaseModel { | ||
| 311 | var url: String? = "" | 312 | var url: String? = "" |
| 312 | } | 313 | } |
| 313 | // !!!: /Daren/transaction/getTransactionRecord.action 余额交易记录 | 314 | // !!!: /Daren/transaction/getTransactionRecord.action 余额交易记录 |
| 315 | + | ||
| 316 | +class MineTradingRecordBaseModel: BaseModel { | ||
| 317 | + var defray: String? = "" | ||
| 318 | + var lasePage: Bool = false | ||
| 319 | + var income: String? = "" | ||
| 320 | + var list = [MineTradingRecordModel]() | ||
| 321 | +} | ||
| 322 | + | ||
| 314 | class MineTradingRecordModel: BaseModel { | 323 | class MineTradingRecordModel: BaseModel { |
| 315 | 324 | ||
| 316 | var disburseRecord: String? = ""//支出 | 325 | var disburseRecord: String? = ""//支出 |
metaCode/Classes/Main/MinePage/ViewModel/CNLiveMineViewModel.swift
| @@ -433,7 +433,7 @@ class CNLiveMineViewModel: NSObject { | @@ -433,7 +433,7 @@ class CNLiveMineViewModel: NSObject { | ||
| 433 | /// - resultBlock: 返回 | 433 | /// - resultBlock: 返回 |
| 434 | static func requestsStandInfo(identityId: String, type: CNLiveMineGetWriteType, resultBlock: @escaping resultNewsBlock) { | 434 | static func requestsStandInfo(identityId: String, type: CNLiveMineGetWriteType, resultBlock: @escaping resultNewsBlock) { |
| 435 | let param = NSMutableDictionary() | 435 | let param = NSMutableDictionary() |
| 436 | - param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "sid")//UserInfoManager.shared.userInfo.uid //10458139 | 436 | + param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "sid") |
| 437 | param.setValue(identityId, forKey: "identityId") | 437 | param.setValue(identityId, forKey: "identityId") |
| 438 | CNLiveNetworking.setAllowRequestDefaultArgument(true) | 438 | CNLiveNetworking.setAllowRequestDefaultArgument(true) |
| 439 | CNLiveNetworking.setupShowDataResult(false) | 439 | CNLiveNetworking.setupShowDataResult(false) |
| @@ -673,8 +673,8 @@ class CNLiveMineViewModel: NSObject { | @@ -673,8 +673,8 @@ class CNLiveMineViewModel: NSObject { | ||
| 673 | let param = NSMutableDictionary() | 673 | let param = NSMutableDictionary() |
| 674 | param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "targetId") | 674 | param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "targetId") |
| 675 | param.setValue("0", forKey: "type")//0全部(默认) 1收入 2支出 | 675 | param.setValue("0", forKey: "type")//0全部(默认) 1收入 2支出 |
| 676 | - param.setValue("1692610120000", forKey: "startTime") | ||
| 677 | - param.setValue("1695202120000", forKey: "endTime") | 676 | + param.setValue("\((timeStamp * 1000) - 30*24*60*60)", forKey: "startTime")//"1600569015000" |
| 677 | + param.setValue("\((timeStamp * 1000))", forKey: "endTime")//"1603074615000" | ||
| 678 | param.setValue("10", forKey: "pageSize") | 678 | param.setValue("10", forKey: "pageSize") |
| 679 | param.setValue("\(page)", forKey: "pageNo") | 679 | param.setValue("\(page)", forKey: "pageNo") |
| 680 | let custom_param = NSMutableDictionary() | 680 | let custom_param = NSMutableDictionary() |
| @@ -690,14 +690,8 @@ class CNLiveMineViewModel: NSObject { | @@ -690,14 +690,8 @@ class CNLiveMineViewModel: NSObject { | ||
| 690 | let resp = result as! NSDictionary | 690 | let resp = result as! NSDictionary |
| 691 | let errorCode = "\(resp["errorCode"] ?? "0")" | 691 | let errorCode = "\(resp["errorCode"] ?? "0")" |
| 692 | if (errorCode == "0") { | 692 | if (errorCode == "0") { |
| 693 | - let dict = resp["data"] as! NSDictionary | ||
| 694 | - let array = dict["list"] as! NSArray | ||
| 695 | - let tempArray = NSMutableArray() | ||
| 696 | - for item in array { | ||
| 697 | - let listModel = dictionaryToModel(item as! [String : Any], MineTradingRecordModel.self,"") as! MineTradingRecordModel | ||
| 698 | - tempArray.add(listModel) | ||
| 699 | - } | ||
| 700 | - resultBlock(tempArray,.success) | 693 | + let listModel = dictionaryToModel(resp as! [String : Any], MineTradingRecordBaseModel.self,"data") as! MineTradingRecordBaseModel |
| 694 | + resultBlock(listModel,.success) | ||
| 701 | } else { | 695 | } else { |
| 702 | showMessage(message: resp["errorMessage"] as! String) | 696 | showMessage(message: resp["errorMessage"] as! String) |
| 703 | resultBlock(NSNull(),.failed) | 697 | resultBlock(NSNull(),.failed) |
| @@ -719,10 +713,12 @@ class CNLiveMineViewModel: NSObject { | @@ -719,10 +713,12 @@ class CNLiveMineViewModel: NSObject { | ||
| 719 | /// - page: 页数 | 713 | /// - page: 页数 |
| 720 | /// - resultBlock: 返回 | 714 | /// - resultBlock: 返回 |
| 721 | static func requestWithIntegralRecord(page: NSInteger, resultBlock: @escaping resultNewsBlock) { | 715 | static func requestWithIntegralRecord(page: NSInteger, resultBlock: @escaping resultNewsBlock) { |
| 716 | + let startTime = NSDate.timeIntervalChangeToTimeStr(timeInterval: Double((timeStamp * 1000) - 30*24*60*60)) | ||
| 717 | + let endTime = NSDate.timeIntervalChangeToTimeStr(timeInterval: Double(timeStamp * 1000)) | ||
| 722 | let param = NSMutableDictionary() | 718 | let param = NSMutableDictionary() |
| 723 | param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "sid") | 719 | param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "sid") |
| 724 | - param.setValue("2022-08-21", forKey: "startTime")//开始时间 | ||
| 725 | - param.setValue("2022-09-20", forKey: "endTime")//开始时间 | 720 | + param.setValue(startTime, forKey: "startTime")//开始时间 "2022-08-21" |
| 721 | + param.setValue(endTime, forKey: "endTime")//开始时间 "2022-09-20" | ||
| 726 | param.setValue("0", forKey: "type")//0全部(默认) 1收入 2支出 | 722 | param.setValue("0", forKey: "type")//0全部(默认) 1收入 2支出 |
| 727 | param.setValue("10", forKey: "pageSize") | 723 | param.setValue("10", forKey: "pageSize") |
| 728 | param.setValue("\(page)", forKey: "pageNo") | 724 | param.setValue("\(page)", forKey: "pageNo") |
| @@ -757,6 +753,42 @@ class CNLiveMineViewModel: NSObject { | @@ -757,6 +753,42 @@ class CNLiveMineViewModel: NSObject { | ||
| 757 | } | 753 | } |
| 758 | } | 754 | } |
| 759 | 755 | ||
| 756 | + /// 签到功能 | ||
| 757 | + /// - Parameters: | ||
| 758 | + /// - resultBlock: 返回 | ||
| 759 | + static func requestWithCheckInAction(resultBlock: @escaping resultNewsBlock) { | ||
| 760 | + let param = NSMutableDictionary() | ||
| 761 | + param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "sid") | ||
| 762 | + let custom_param = NSMutableDictionary() | ||
| 763 | + custom_param.setValue(APPId_wjj, forKey: "appId") | ||
| 764 | + custom_param.setValue(APPKey_wjj, forKey: "appKey") | ||
| 765 | + CNLiveNetworking.setAllowRequestDefaultArgument(true) | ||
| 766 | + CNLiveNetworking.setupShowDataResult(false) | ||
| 767 | + CNLiveNetworking.setupSignRequestKey(APPKey_wjj) | ||
| 768 | + CNLiveNetworking.setupCustomParam(custom_param as? [String : String]) | ||
| 769 | + CNLiveNetworking.requestNetwork(with: .POST, urlString: APPBaseWjjUrl+"/Daren/integral/checkIn.action", param: (param as! [AnyHashable : Any]), cacheType: .networkOnly) { task, result, error in | ||
| 770 | + hiddenLoading() | ||
| 771 | + if (error == nil) { | ||
| 772 | + let resp = result as! NSDictionary | ||
| 773 | + let errorCode = "\(resp["errorCode"] ?? "0")" | ||
| 774 | + if (errorCode == "0") { | ||
| 775 | + resultBlock(resp,.success) | ||
| 776 | + } else { | ||
| 777 | + showMessage(message: resp["errorMessage"] as! String) | ||
| 778 | + resultBlock(NSNull(),.failed) | ||
| 779 | + } | ||
| 780 | + } else { | ||
| 781 | + if CNLiveNetworking.isNetworking() { | ||
| 782 | + showMessage(message: "签到失败") | ||
| 783 | + resultBlock(NSNull(),.failed) | ||
| 784 | + } else { | ||
| 785 | + showMessage(message: "似乎与网络断开链接") | ||
| 786 | + resultBlock(NSNull(),.noNetwork) | ||
| 787 | + } | ||
| 788 | + } | ||
| 789 | + } | ||
| 790 | + } | ||
| 791 | + | ||
| 760 | /// 获取十位时间戳 | 792 | /// 获取十位时间戳 |
| 761 | static var timeStamp: Int { | 793 | static var timeStamp: Int { |
| 762 | let timeInterval: TimeInterval = NSDate().timeIntervalSince1970 | 794 | let timeInterval: TimeInterval = NSDate().timeIntervalSince1970 |