Commit a8e93ab9 authored by pete谢兆麟's avatar pete谢兆麟

加载更多

parent ab09c898
...@@ -13,7 +13,8 @@ class YHFourKingViewController: YHBaseViewController { ...@@ -13,7 +13,8 @@ class YHFourKingViewController: YHBaseViewController {
var tableFootView: YHServiceTableFootView! var tableFootView: YHServiceTableFootView!
var sectionView: YHServiceSectionView! var sectionView: YHServiceSectionView!
var id = 3 var id = 3
var classId: Int = 0
var dataSouce: [YHHomeListModel?] = [] { var dataSouce: [YHHomeListModel?] = [] {
didSet { didSet {
self.homeTableView.reloadData() self.homeTableView.reloadData()
...@@ -55,7 +56,8 @@ extension YHFourKingViewController { ...@@ -55,7 +56,8 @@ extension YHFourKingViewController {
gk_navTitle = model.name gk_navTitle = model.name
self.sectionView.items = model.children self.sectionView.items = model.children
let classifyID = model.children.first?.id ?? 0 let classifyID = model.children.first?.id ?? 0
self.homeViewModel.getList(classifyID) {[weak self] success, error in self.classId = classifyID
self.homeViewModel.getList(true, classifyID) {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
self.dataSouce = self.homeViewModel.arrHomeNewsData ?? [] self.dataSouce = self.homeViewModel.arrHomeNewsData ?? []
} }
...@@ -71,9 +73,13 @@ extension YHFourKingViewController { ...@@ -71,9 +73,13 @@ extension YHFourKingViewController {
let view = YHServiceSectionView() let view = YHServiceSectionView()
view.block = {[weak self] model in view.block = {[weak self] model in
guard let self = self else { return } guard let self = self else { return }
self.homeViewModel.getList(model.id) {[weak self] success, error in self.classId = model.id
self.homeViewModel.getList(true, model.id) {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
self.dataSouce = self.homeViewModel.arrHomeNewsData ?? [] self.dataSouce = self.homeViewModel.arrHomeNewsData ?? []
if self.homeViewModel.hasMoreForHomeNews == false {
self.homeTableView.es.noticeNoMoreData()
}
} }
} }
return view return view
...@@ -87,6 +93,18 @@ extension YHFourKingViewController { ...@@ -87,6 +93,18 @@ extension YHFourKingViewController {
} }
homeTableView.delegate = self homeTableView.delegate = self
homeTableView.dataSource = self homeTableView.dataSource = self
homeTableView.es.addInfiniteScrolling {[weak self] in
guard let self = self else { return }
self.homeViewModel.getList(false, self.classId) {[weak self] success, error in
guard let self = self else { return }
self.dataSouce = self.homeViewModel.arrHomeNewsData ?? []
self.homeTableView.es.stopLoadingMore()
if self.homeViewModel.hasMoreForHomeNews == false {
self.homeTableView.es.noticeNoMoreData()
}
}
}
} }
} }
......
...@@ -147,14 +147,23 @@ extension YHHomePageViewModel { ...@@ -147,14 +147,23 @@ extension YHHomePageViewModel {
} }
} }
func getList(_ classifyID: Int, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) { func getList(_ firstPageFlag : Bool, _ classifyID: Int, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let params: [String : Any] = ["page": 1, var params: [String : Any] = ["page": curPageIndex,
"page_size": 10, "page_size": page_Size,
"classify_id[0]": classifyID] "classify_id[0]": classifyID]
if firstPageFlag {
curPageIndex = 1
params = ["page": curPageIndex,
"page_size": page_Size,
"classify_id[0]": classifyID]
} else {
params = ["page": curPageIndex + 1,
"page_size": page_Size,
"classify_id[0]": classifyID]
}
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.article let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.article
let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in
guard let self = self else { return } guard let self = self else { return }
//1. json字符串 转 对象
if json.code == 200 { if json.code == 200 {
let dic = json.data let dic = json.data
guard let result = YHHomeListTotalModel.deserialize(from: dic as? Dictionary) else { guard let result = YHHomeListTotalModel.deserialize(from: dic as? Dictionary) else {
...@@ -166,14 +175,29 @@ extension YHHomePageViewModel { ...@@ -166,14 +175,29 @@ extension YHHomePageViewModel {
for item in result.data { for item in result.data {
item.calHeightParam() item.calHeightParam()
} }
self.arrHomeNewsData = result.data
if firstPageFlag {
self.totalCount = result.total
self.arrHomeNewsData = result.data
} else {
self.arrHomeNewsData?.append(contentsOf: result.data)
}
if let count = self.arrHomeNewsData?.count {
if count == self.totalCount {
self.hasMoreForHomeNews = false
} else {
self.hasMoreForHomeNews = true
}
}
callBackBlock(true, nil) callBackBlock(true, nil)
} else { } else {
self.arrHomeNewsData = []
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg) let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error) callBackBlock(false, error)
} }
} failBlock: { err in } failBlock: { err in
callBackBlock(false,err) callBackBlock(false,err)
} }
} }
......
...@@ -14,7 +14,7 @@ class YHServerHKLifeViewController: YHBaseViewController { ...@@ -14,7 +14,7 @@ class YHServerHKLifeViewController: YHBaseViewController {
var tableHeadView: YHServerTableHeadView! var tableHeadView: YHServerTableHeadView!
var tableFootView: YHServiceTableFootView! var tableFootView: YHServiceTableFootView!
var sectionView: YHServiceSectionView! var sectionView: YHServiceSectionView!
var classId: Int = 0
var dataSouce: [YHHomeListModel?] = [] { var dataSouce: [YHHomeListModel?] = [] {
didSet { didSet {
self.homeTableView.reloadData() self.homeTableView.reloadData()
...@@ -61,9 +61,13 @@ extension YHServerHKLifeViewController { ...@@ -61,9 +61,13 @@ extension YHServerHKLifeViewController {
if model.id == 2 { if model.id == 2 {
self.sectionView.items = model.children self.sectionView.items = model.children
let classifyID = model.children.first?.id ?? 0 let classifyID = model.children.first?.id ?? 0
self.homeViewModel.getList(classifyID) {[weak self] success, error in self.classId = classifyID
self.homeViewModel.getList(true, classifyID) {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
self.dataSouce = self.homeViewModel.arrHomeNewsData ?? [] self.dataSouce = self.homeViewModel.arrHomeNewsData ?? []
if self.homeViewModel.hasMoreForHomeNews == false {
self.homeTableView.es.noticeNoMoreData()
}
} }
} }
} }
...@@ -78,9 +82,13 @@ extension YHServerHKLifeViewController { ...@@ -78,9 +82,13 @@ extension YHServerHKLifeViewController {
let view = YHServiceSectionView() let view = YHServiceSectionView()
view.block = {[weak self] model in view.block = {[weak self] model in
guard let self = self else { return } guard let self = self else { return }
self.homeViewModel.getList(model.id) {[weak self] success, error in self.classId = model.id
self.homeViewModel.getList(true, model.id) {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
self.dataSouce = self.homeViewModel.arrHomeNewsData ?? [] self.dataSouce = self.homeViewModel.arrHomeNewsData ?? []
if self.homeViewModel.hasMoreForHomeNews == false {
self.homeTableView.es.noticeNoMoreData()
}
} }
} }
return view return view
...@@ -88,8 +96,6 @@ extension YHServerHKLifeViewController { ...@@ -88,8 +96,6 @@ extension YHServerHKLifeViewController {
tableHeadView = YHServerTableHeadView() tableHeadView = YHServerTableHeadView()
tableHeadView.frame = CGRect(x: 0, y: 0, width: KScreenWidth, height: 365) tableHeadView.frame = CGRect(x: 0, y: 0, width: KScreenWidth, height: 365)
// tableFootView = YHServiceTableFootView()
// tableFootView.frame = CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight)
view.addSubview(homeTableView) view.addSubview(homeTableView)
homeTableView.tableHeaderView = tableHeadView homeTableView.tableHeaderView = tableHeadView
homeTableView.tableFooterView = tableFootView homeTableView.tableFooterView = tableFootView
...@@ -99,6 +105,17 @@ extension YHServerHKLifeViewController { ...@@ -99,6 +105,17 @@ extension YHServerHKLifeViewController {
} }
homeTableView.delegate = self homeTableView.delegate = self
homeTableView.dataSource = self homeTableView.dataSource = self
homeTableView.es.addInfiniteScrolling {[weak self] in
guard let self = self else { return }
self.homeTableView.es.stopLoadingMore()
self.homeViewModel.getList(false, self.classId) {[weak self] success, error in
guard let self = self else { return }
self.dataSouce = self.homeViewModel.arrHomeNewsData ?? []
if self.homeViewModel.hasMoreForHomeNews == false {
self.homeTableView.es.noticeNoMoreData()
}
}
}
} }
} }
......
...@@ -16,7 +16,7 @@ class YHServiceListViewController: YHBaseViewController { ...@@ -16,7 +16,7 @@ class YHServiceListViewController: YHBaseViewController {
var orderListView: YHOrderListView! var orderListView: YHOrderListView!
var normalView: YHServerNoOrderView! var normalView: YHServerNoOrderView!
var classId: Int = 0
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
setupUI() setupUI()
...@@ -45,9 +45,13 @@ extension YHServiceListViewController { ...@@ -45,9 +45,13 @@ extension YHServiceListViewController {
if model.id == 1 { if model.id == 1 {
self.normalView.sectionView.items = model.children self.normalView.sectionView.items = model.children
let classifyID = model.children.first?.id ?? 0 let classifyID = model.children.first?.id ?? 0
self.homeViewModel.getList(classifyID) {[weak self] success, error in self.classId = classifyID
self.homeViewModel.getList(true, classifyID) {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
self.normalView.dataSouce = self.homeViewModel.arrHomeNewsData ?? [] self.normalView.dataSouce = self.homeViewModel.arrHomeNewsData ?? []
if self.homeViewModel.hasMoreForHomeNews == false {
self.normalView.homeTableView.es.noticeNoMoreData()
}
} }
} }
} }
...@@ -87,9 +91,23 @@ extension YHServiceListViewController { ...@@ -87,9 +91,23 @@ extension YHServiceListViewController {
let view = YHServerNoOrderView() let view = YHServerNoOrderView()
view.sectionBlock = {[weak self] model in view.sectionBlock = {[weak self] model in
guard let self = self else { return } guard let self = self else { return }
self.homeViewModel.getList(model.id) {[weak self] success, error in self.classId = model.id
self.homeViewModel.getList(true, model.id) {[weak self] success, error in
guard let self = self else { return }
self.normalView.dataSouce = self.homeViewModel.arrHomeNewsData ?? []
if self.homeViewModel.hasMoreForHomeNews == false {
self.normalView.homeTableView.es.noticeNoMoreData()
}
}
}
view.loadMoreBlock = {[weak self] model in
guard let self = self else { return }
self.homeViewModel.getList(false, self.classId) {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
self.normalView.dataSouce = self.homeViewModel.arrHomeNewsData ?? [] self.normalView.dataSouce = self.homeViewModel.arrHomeNewsData ?? []
if self.homeViewModel.hasMoreForHomeNews == false {
self.normalView.homeTableView.es.noticeNoMoreData()
}
} }
} }
return view return view
......
...@@ -11,6 +11,7 @@ import UIKit ...@@ -11,6 +11,7 @@ import UIKit
class YHServerNoOrderView: UIView { class YHServerNoOrderView: UIView {
typealias SectionBlock = (YHClassifyModel) -> () typealias SectionBlock = (YHClassifyModel) -> ()
var sectionBlock: SectionBlock? var sectionBlock: SectionBlock?
var loadMoreBlock: SectionBlock?
var tableHeadView: YHServerTableHeadView! var tableHeadView: YHServerTableHeadView!
var sectionView: YHServiceSectionView! var sectionView: YHServiceSectionView!
...@@ -66,6 +67,14 @@ class YHServerNoOrderView: UIView { ...@@ -66,6 +67,14 @@ class YHServerNoOrderView: UIView {
} }
homeTableView.delegate = self homeTableView.delegate = self
homeTableView.dataSource = self homeTableView.dataSource = self
homeTableView.es.addInfiniteScrolling {[weak self] in
guard let self = self else { return }
self.homeTableView.es.stopLoadingMore()
if let block = self.loadMoreBlock {
block(YHClassifyModel())
}
}
} }
} }
......
...@@ -31,6 +31,8 @@ class YHServerTableHeadView: UIView { ...@@ -31,6 +31,8 @@ class YHServerTableHeadView: UIView {
func setUpView() { func setUpView() {
search = { search = {
let view = YHHomeSearchView() let view = YHHomeSearchView()
let tap = UITapGestureRecognizer(target: self, action: #selector(didSearchBarClicked))
view.addGestureRecognizer(tap)
return view return view
}() }()
addSubview(search) addSubview(search)
...@@ -76,4 +78,9 @@ class YHServerTableHeadView: UIView { ...@@ -76,4 +78,9 @@ class YHServerTableHeadView: UIView {
@objc func goNext() { @objc func goNext() {
UIViewController.current?.navigationController?.pushViewController(YHScoreDetailViewController()) UIViewController.current?.navigationController?.pushViewController(YHScoreDetailViewController())
} }
@objc func didSearchBarClicked() {
let vc = YHSearchInfomationVC()
UIViewController.current?.navigationController?.pushViewController(vc)
}
} }
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
import UIKit import UIKit
class YHServiceTableFootView: UIView { class YHServiceTableFootView: UIView {
typealias LoadBlock = () -> ()
var moreBlock: LoadBlock?
var items:[YHHomeListModel?] = [] { var items:[YHHomeListModel?] = [] {
didSet { didSet {
...@@ -49,6 +51,13 @@ class YHServiceTableFootView: UIView { ...@@ -49,6 +51,13 @@ class YHServiceTableFootView: UIView {
myCollectView.snp.makeConstraints { make in myCollectView.snp.makeConstraints { make in
make.top.left.right.bottom.equalToSuperview() make.top.left.right.bottom.equalToSuperview()
} }
myCollectView.es.addInfiniteScrolling {[weak self] in
guard let self = self else { return }
if let block = moreBlock {
block ()
}
}
} }
} }
......
...@@ -42,14 +42,20 @@ class YHMyLikeViewController: YHBaseViewController { ...@@ -42,14 +42,20 @@ class YHMyLikeViewController: YHBaseViewController {
extension YHMyLikeViewController { extension YHMyLikeViewController {
func loadData() { func loadData() {
if id == 1 || id == 2 { if id == 1 || id == 2 {
self.viewModel.getList(id) {[weak self] success, error in self.viewModel.getList(true ,id) {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
self.dataSouce = self.viewModel.arrHomeNewsData ?? [] self.dataSouce = self.viewModel.arrHomeNewsData ?? []
if self.viewModel.hasMoreForHomeNews == false {
self.tableFootView.myCollectView.es.noticeNoMoreData()
}
} }
} else { } else {
self.viewModel.getList(callBackBlock: {[weak self] success, error in self.viewModel.getList(true, callBackBlock: {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
self.dataSouce = self.viewModel.arrHomeNewsData ?? [] self.dataSouce = self.viewModel.arrHomeNewsData ?? []
if self.viewModel.hasMoreForHomeNews == false {
self.tableFootView.myCollectView.es.noticeNoMoreData()
}
}) })
} }
} }
...@@ -59,6 +65,28 @@ extension YHMyLikeViewController { ...@@ -59,6 +65,28 @@ extension YHMyLikeViewController {
tableFootView = { tableFootView = {
let view = YHServiceTableFootView() let view = YHServiceTableFootView()
view.moreBlock = {[weak self] in
guard let self = self else { return }
if id == 1 || id == 2 {
self.tableFootView.myCollectView.es.stopLoadingMore()
self.viewModel.getList(false ,id) {[weak self] success, error in
guard let self = self else { return }
self.dataSouce = self.viewModel.arrHomeNewsData ?? []
if self.viewModel.hasMoreForHomeNews == false {
self.tableFootView.myCollectView.es.noticeNoMoreData()
}
}
} else {
self.tableFootView.myCollectView.es.stopLoadingMore()
self.viewModel.getList(false, callBackBlock: {[weak self] success, error in
guard let self = self else { return }
self.dataSouce = self.viewModel.arrHomeNewsData ?? []
if self.viewModel.hasMoreForHomeNews == false {
self.tableFootView.myCollectView.es.noticeNoMoreData()
}
})
}
}
return view return view
}() }()
......
...@@ -10,16 +10,31 @@ import UIKit ...@@ -10,16 +10,31 @@ import UIKit
class YHMyLikeViewModel: YHBaseViewModel { class YHMyLikeViewModel: YHBaseViewModel {
var arrHomeNewsData: [YHHomeListModel]? var arrHomeNewsData: [YHHomeListModel]?
private var curPageIndex : Int = 1
private var page_Size : Int = 10
private var totalCount : Int = 0
var hasMoreForHomeNews : Bool = true
} }
extension YHMyLikeViewModel { extension YHMyLikeViewModel {
// 1点赞 2收藏 // 1点赞 2收藏
func getList(_ type: Int, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) { func getList(_ firstPageFlag : Bool, _ type: Int, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let params: [String : Any] = ["page": 1, var params: [String : Any] = ["page": curPageIndex,
"page_size": 10, "page_size": page_Size,
"operate_type": type] "operate_type": type]
if firstPageFlag {
curPageIndex = 1
params = ["page": curPageIndex,
"page_size": page_Size,
"operate_type": type]
} else {
params = ["page": curPageIndex + 1,
"page_size": page_Size,
"operate_type": type]
}
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.user let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.user
let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in
guard let self = self else { return } guard let self = self else { return }
//1. json字符串 转 对象 //1. json字符串 转 对象
if json.code == 200 { if json.code == 200 {
...@@ -33,9 +48,25 @@ extension YHMyLikeViewModel { ...@@ -33,9 +48,25 @@ extension YHMyLikeViewModel {
for item in result.data { for item in result.data {
item.calHeightParam() item.calHeightParam()
} }
self.arrHomeNewsData = result.data
if firstPageFlag {
self.totalCount = result.total
self.arrHomeNewsData = result.data
} else {
self.arrHomeNewsData?.append(contentsOf: result.data)
}
if let count = self.arrHomeNewsData?.count {
if count == self.totalCount {
self.hasMoreForHomeNews = false
} else {
self.hasMoreForHomeNews = true
}
}
callBackBlock(true, nil) callBackBlock(true, nil)
} else { } else {
self.arrHomeNewsData = []
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg) let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error) callBackBlock(false, error)
} }
...@@ -45,11 +76,19 @@ extension YHMyLikeViewModel { ...@@ -45,11 +76,19 @@ extension YHMyLikeViewModel {
} }
//最近浏览 //最近浏览
func getList(callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) { func getList(_ firstPageFlag : Bool, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let params: [String : Any] = ["page": 1, var params: [String : Any] = ["page": curPageIndex,
"page_size": 10] "page_size": page_Size]
if firstPageFlag {
curPageIndex = 1
params = ["page": curPageIndex,
"page_size": page_Size]
} else {
params = ["page": curPageIndex + 1,
"page_size": page_Size]
}
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.userLook let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.userLook
let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in
guard let self = self else { return } guard let self = self else { return }
//1. json字符串 转 对象 //1. json字符串 转 对象
if json.code == 200 { if json.code == 200 {
...@@ -63,9 +102,25 @@ extension YHMyLikeViewModel { ...@@ -63,9 +102,25 @@ extension YHMyLikeViewModel {
for item in result.data { for item in result.data {
item.calHeightParam() item.calHeightParam()
} }
self.arrHomeNewsData = result.data
if firstPageFlag {
self.totalCount = result.total
self.arrHomeNewsData = result.data
} else {
self.arrHomeNewsData?.append(contentsOf: result.data)
}
if let count = self.arrHomeNewsData?.count {
if count == self.totalCount {
self.hasMoreForHomeNews = false
} else {
self.hasMoreForHomeNews = true
}
}
callBackBlock(true, nil) callBackBlock(true, nil)
} else { } else {
self.arrHomeNewsData = []
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg) let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error) callBackBlock(false, error)
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment