Commit bc9c99c4 authored by Steven杜宇's avatar Steven杜宇

Merge branch 'develop' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS into develop

parents 8e864f81 1d12f186
......@@ -13,7 +13,8 @@ class YHFourKingViewController: YHBaseViewController {
var tableFootView: YHServiceTableFootView!
var sectionView: YHServiceSectionView!
var id = 3
var classId: Int = 0
var dataSouce: [YHHomeListModel?] = [] {
didSet {
self.homeTableView.reloadData()
......@@ -55,7 +56,8 @@ extension YHFourKingViewController {
gk_navTitle = model.name
self.sectionView.items = model.children
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 }
self.dataSouce = self.homeViewModel.arrHomeNewsData ?? []
}
......@@ -71,9 +73,13 @@ extension YHFourKingViewController {
let view = YHServiceSectionView()
view.block = {[weak self] model in
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.dataSouce = self.homeViewModel.arrHomeNewsData ?? []
if self.homeViewModel.hasMoreForHomeNews == false {
self.homeTableView.es.noticeNoMoreData()
}
}
}
return view
......@@ -87,6 +93,18 @@ extension YHFourKingViewController {
}
homeTableView.delegate = 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 {
}
}
func getList(_ classifyID: Int, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let params: [String : Any] = ["page": 1,
"page_size": 10,
"classify_id": classifyID]
func getList(_ firstPageFlag : Bool, _ classifyID: Int, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
var params: [String : Any] = ["page": curPageIndex,
"page_size": page_Size,
"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 _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in
guard let self = self else { return }
//1. json字符串 转 对象
if json.code == 200 {
let dic = json.data
guard let result = YHHomeListTotalModel.deserialize(from: dic as? Dictionary) else {
......@@ -166,14 +175,29 @@ extension YHHomePageViewModel {
for item in result.data {
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)
} else {
self.arrHomeNewsData = []
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
......
......@@ -14,7 +14,7 @@ class YHServerHKLifeViewController: YHBaseViewController {
var tableHeadView: YHServerTableHeadView!
var tableFootView: YHServiceTableFootView!
var sectionView: YHServiceSectionView!
var classId: Int = 0
var dataSouce: [YHHomeListModel?] = [] {
didSet {
self.homeTableView.reloadData()
......@@ -61,9 +61,13 @@ extension YHServerHKLifeViewController {
if model.id == 2 {
self.sectionView.items = model.children
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 }
self.dataSouce = self.homeViewModel.arrHomeNewsData ?? []
if self.homeViewModel.hasMoreForHomeNews == false {
self.homeTableView.es.noticeNoMoreData()
}
}
}
}
......@@ -78,9 +82,13 @@ extension YHServerHKLifeViewController {
let view = YHServiceSectionView()
view.block = {[weak self] model in
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.dataSouce = self.homeViewModel.arrHomeNewsData ?? []
if self.homeViewModel.hasMoreForHomeNews == false {
self.homeTableView.es.noticeNoMoreData()
}
}
}
return view
......@@ -88,8 +96,6 @@ extension YHServerHKLifeViewController {
tableHeadView = YHServerTableHeadView()
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)
homeTableView.tableHeaderView = tableHeadView
homeTableView.tableFooterView = tableFootView
......@@ -99,6 +105,17 @@ extension YHServerHKLifeViewController {
}
homeTableView.delegate = 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 {
var orderListView: YHOrderListView!
var normalView: YHServerNoOrderView!
var classId: Int = 0
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
......@@ -45,9 +45,13 @@ extension YHServiceListViewController {
if model.id == 1 {
self.normalView.sectionView.items = model.children
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 }
self.normalView.dataSouce = self.homeViewModel.arrHomeNewsData ?? []
if self.homeViewModel.hasMoreForHomeNews == false {
self.normalView.homeTableView.es.noticeNoMoreData()
}
}
}
}
......@@ -87,9 +91,23 @@ extension YHServiceListViewController {
let view = YHServerNoOrderView()
view.sectionBlock = {[weak self] model in
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 }
self.normalView.dataSouce = self.homeViewModel.arrHomeNewsData ?? []
if self.homeViewModel.hasMoreForHomeNews == false {
self.normalView.homeTableView.es.noticeNoMoreData()
}
}
}
return view
......
......@@ -11,6 +11,7 @@ import UIKit
class YHServerNoOrderView: UIView {
typealias SectionBlock = (YHClassifyModel) -> ()
var sectionBlock: SectionBlock?
var loadMoreBlock: SectionBlock?
var tableHeadView: YHServerTableHeadView!
var sectionView: YHServiceSectionView!
......@@ -66,6 +67,14 @@ class YHServerNoOrderView: UIView {
}
homeTableView.delegate = 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 {
func setUpView() {
search = {
let view = YHHomeSearchView()
let tap = UITapGestureRecognizer(target: self, action: #selector(didSearchBarClicked))
view.addGestureRecognizer(tap)
return view
}()
addSubview(search)
......@@ -76,4 +78,9 @@ class YHServerTableHeadView: UIView {
@objc func goNext() {
UIViewController.current?.navigationController?.pushViewController(YHScoreDetailViewController())
}
@objc func didSearchBarClicked() {
let vc = YHSearchInfomationVC()
UIViewController.current?.navigationController?.pushViewController(vc)
}
}
......@@ -77,6 +77,27 @@ private extension YHServiceBannerView {
self.pageControl.interitemSpacing = 3
}
func goAppTab(tabBarName : String) {
if !tabBarName.isEmpty {
if tabBarName.contains("tabBarHome",caseSensitive: false) {
//首页
goTabBarBy(tabType: .home)
} else if tabBarName.contains("tabBarService",caseSensitive: false) {
//服务中心
goTabBarBy(tabType: .service)
} else if tabBarName.contains("tabBarMsg",caseSensitive: false) {
//消息
goTabBarBy(tabType: .message)
} else if tabBarName.contains("tabBarMine",caseSensitive: false) {
//我的
goTabBarBy(tabType: .mine)
} else {
}
}
}
}
extension YHServiceBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
......@@ -94,7 +115,7 @@ extension YHServiceBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
if let url = URL(string: model.img_url) {
cell.imageView?.kf.setImage(with: url)
}
cell.textLabel?.text = model.name
// cell.textLabel?.text = model.name
}
cell.imageView?.contentMode = .scaleAspectFill
cell.backgroundColor = .contentBkgColor
......@@ -112,19 +133,26 @@ extension YHServiceBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
return
}
let model = dataArr[index]
switch model.type {
case 10: //跳转H5
// let vc = BsWebViewController()
// vc.urlString = model.link_url
// UIViewController.navTopViewController?.navigationController?.pushViewController(vc, animated: true)
break
case 20: //跳转原生页面
if let vc = UIViewController.classFromString(model.skip_url) {
UIViewController.navTopViewController?.navigationController?.pushViewController(vc, animated: true)
if model.skip_url.isEmpty == false {
switch model.skip_type {
case 1: //跳转H5
let vc = YHHomeWebViewController()
vc.url = model.skip_url
self.parentViewController?.navigationController?.pushViewController(vc)
case 2: //跳转APP内Tab
goAppTab(tabBarName:model.skip_url)
case 3://3-跳转资讯页
let vc = YHHomeWebViewController()
vc.url = model.skip_url
self.parentViewController?.navigationController?.pushViewController(vc)
case 0://0 不需要跳转
printLog("0 不需要跳转")
default:
YHHUD.flash(message: "不需要处理的类型")
break
}
break
default:
break
} else {
YHHUD.flash(message: "error:skip_url不能为空")
}
}
......
......@@ -9,6 +9,8 @@
import UIKit
class YHServiceTableFootView: UIView {
typealias LoadBlock = () -> ()
var moreBlock: LoadBlock?
var items:[YHHomeListModel?] = [] {
didSet {
......@@ -49,6 +51,13 @@ class YHServiceTableFootView: UIView {
myCollectView.snp.makeConstraints { make in
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 {
extension YHMyLikeViewController {
func loadData() {
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 }
self.dataSouce = self.viewModel.arrHomeNewsData ?? []
if self.viewModel.hasMoreForHomeNews == false {
self.tableFootView.myCollectView.es.noticeNoMoreData()
}
}
} 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 }
self.dataSouce = self.viewModel.arrHomeNewsData ?? []
if self.viewModel.hasMoreForHomeNews == false {
self.tableFootView.myCollectView.es.noticeNoMoreData()
}
})
}
}
......@@ -59,6 +65,28 @@ extension YHMyLikeViewController {
tableFootView = {
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
}()
......
......@@ -10,16 +10,31 @@ import UIKit
class YHMyLikeViewModel: YHBaseViewModel {
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 {
// 1点赞 2收藏
func getList(_ type: Int, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let params: [String : Any] = ["page": 1,
"page_size": 10,
func getList(_ firstPageFlag : Bool, _ type: Int, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
var params: [String : Any] = ["page": curPageIndex,
"page_size": page_Size,
"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 _ = 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 }
//1. json字符串 转 对象
if json.code == 200 {
......@@ -33,9 +48,25 @@ extension YHMyLikeViewModel {
for item in result.data {
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)
} else {
self.arrHomeNewsData = []
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
......@@ -45,11 +76,19 @@ extension YHMyLikeViewModel {
}
//最近浏览
func getList(callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let params: [String : Any] = ["page": 1,
"page_size": 10]
func getList(_ firstPageFlag : Bool, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
var params: [String : Any] = ["page": curPageIndex,
"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 _ = 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 }
//1. json字符串 转 对象
if json.code == 200 {
......@@ -63,9 +102,25 @@ extension YHMyLikeViewModel {
for item in result.data {
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)
} else {
self.arrHomeNewsData = []
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
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