Commit 9bf31cd0bc66e09b13dcd3e12ff32686b61dec03

Authored by liushiyu
1 parent 78239991

提交修改

@@ -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