Commit 9ed40cc0 authored by pete谢兆麟's avatar pete谢兆麟

首页banner接口

parent dbeb917f
...@@ -86,6 +86,10 @@ class YHHomePageViewController: YHBaseViewController { ...@@ -86,6 +86,10 @@ class YHHomePageViewController: YHBaseViewController {
guard let self = self else { return } guard let self = self else { return }
self.homeCollectView.reloadData() self.homeCollectView.reloadData()
} }
viewModel.getHomeBanner(0) {[weak self] success, error in
guard let self = self else { return }
self.homeHeaderView.homeBannerView.dataArr = self.viewModel.banners ?? []
}
} }
} }
...@@ -108,9 +112,9 @@ private extension YHHomePageViewController { ...@@ -108,9 +112,9 @@ private extension YHHomePageViewController {
make.top.equalTo(searchView.snp.bottom).offset(6) make.top.equalTo(searchView.snp.bottom).offset(6)
} }
homeHeaderView.frame = CGRect(x: 0, y: -YHHomeHeadView.viewH, width: KScreenWidth - 40, height: YHHomeHeadView.viewH) homeHeaderView.frame = CGRect(x: 20, y: -YHHomeHeadView.viewH, width: KScreenWidth - 40, height: YHHomeHeadView.viewH)
homeCollectView.addSubview(homeHeaderView) homeCollectView.addSubview(homeHeaderView)
// homeCollectView.contentInset = UIEdgeInsets(top: YHHomeHeadView.viewH, left: 20, bottom: 20, right: 20) homeCollectView.contentInset = UIEdgeInsets(top: YHHomeHeadView.viewH, left: 0, bottom: 0, right: 0)
// homeCollectView.es.addInfiniteScrolling { // homeCollectView.es.addInfiniteScrolling {
......
...@@ -8,11 +8,12 @@ ...@@ -8,11 +8,12 @@
import Foundation import Foundation
class YHBannerModel { class YHBannerModel: YHBaseModel {
var title: String = "我是Title" //banner标题 var name: String = ""
var img_url: String = "https://upload-cdn.galaxy-immi.com/sell/test/1668772072522.jpg" //banner图片链接 var skip_url: String = ""
var link_type: Int = 0 //跳转类型 0:不跳转 10 :跳转H5 20:跳转原生页面 var img_url: String = ""
var link_url: String = "" //跳转地址 var type: Int = 0
var create_at: String = ""
required init() {} var skip_type: Int = 0
var id: Int = 0
} }
...@@ -17,7 +17,12 @@ class YHHomeBannerView: UIView { ...@@ -17,7 +17,12 @@ class YHHomeBannerView: UIView {
// 位置、大小、图片、文本 // 位置、大小、图片、文本
fileprivate var dataArr: [YHBannerModel] = [YHBannerModel(),YHBannerModel(),YHBannerModel(),YHBannerModel(),YHBannerModel()] var dataArr: [YHBannerModel] = [] {
didSet {
self.pageControl.numberOfPages = self.dataArr.count
bannerView.reloadData()
}
}
override init(frame: CGRect) { override init(frame: CGRect) {
super.init(frame: frame) super.init(frame: frame)
...@@ -28,8 +33,6 @@ class YHHomeBannerView: UIView { ...@@ -28,8 +33,6 @@ class YHHomeBannerView: UIView {
fatalError("init(coder:) has not been implemented") fatalError("init(coder:) has not been implemented")
} }
private lazy var bannerView: FSPagerView = { private lazy var bannerView: FSPagerView = {
let view = FSPagerView() let view = FSPagerView()
view.delegate = self view.delegate = self
...@@ -99,7 +102,7 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate { ...@@ -99,7 +102,7 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
} }
cell.textLabel?.text = model.title cell.textLabel?.text = model.name
} }
cell.imageView?.contentMode = .scaleAspectFill cell.imageView?.contentMode = .scaleAspectFill
...@@ -118,14 +121,14 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate { ...@@ -118,14 +121,14 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
return return
} }
let model = dataArr[index] let model = dataArr[index]
switch model.link_type { switch model.type {
case 10: //跳转H5 case 10: //跳转H5
// let vc = BsWebViewController() // let vc = BsWebViewController()
// vc.urlString = model.link_url // vc.urlString = model.link_url
// UIViewController.navTopViewController?.navigationController?.pushViewController(vc, animated: true) // UIViewController.navTopViewController?.navigationController?.pushViewController(vc, animated: true)
break break
case 20: //跳转原生页面 case 20: //跳转原生页面
if let vc = UIViewController.classFromString(model.link_url) { if let vc = UIViewController.classFromString(model.skip_url) {
UIViewController.navTopViewController?.navigationController?.pushViewController(vc, animated: true) UIViewController.navTopViewController?.navigationController?.pushViewController(vc, animated: true)
} }
break break
......
...@@ -12,6 +12,7 @@ class YHHomePageViewModel : YHBaseViewModel { ...@@ -12,6 +12,7 @@ class YHHomePageViewModel : YHBaseViewModel {
//数据源 //数据源
var configModel:YHHomeCofigMode? var configModel:YHHomeCofigMode?
var lists: [YHHomeListModel]? var lists: [YHHomeListModel]?
var banners: [YHBannerModel]?
} }
//接口 //接口
...@@ -60,4 +61,28 @@ extension YHHomePageViewModel { ...@@ -60,4 +61,28 @@ extension YHHomePageViewModel {
callBackBlock(false,err) callBackBlock(false,err)
} }
} }
// type: 0 APP首页 1 香港身份 2香港生活
func getHomeBanner(_ type: Int, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let params: [String : Any] = ["type": type]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.banner
let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in
guard let self = self else { return }
//1. json字符串 转 对象
if json.code == 200 {
let dic = json.data
guard let result = [YHBannerModel].deserialize(from: dic as? [Any]) else {
callBackBlock(false,nil)
return
}
self.banners = result as? [YHBannerModel]
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
} }
...@@ -91,7 +91,7 @@ extension YHServiceBannerView: FSPagerViewDataSource, FSPagerViewDelegate { ...@@ -91,7 +91,7 @@ extension YHServiceBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
} }
cell.textLabel?.text = model.title cell.textLabel?.text = model.name
} }
cell.imageView?.contentMode = .scaleAspectFill cell.imageView?.contentMode = .scaleAspectFill
...@@ -110,14 +110,14 @@ extension YHServiceBannerView: FSPagerViewDataSource, FSPagerViewDelegate { ...@@ -110,14 +110,14 @@ extension YHServiceBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
return return
} }
let model = dataArr[index] let model = dataArr[index]
switch model.link_type { switch model.type {
case 10: //跳转H5 case 10: //跳转H5
// let vc = BsWebViewController() // let vc = BsWebViewController()
// vc.urlString = model.link_url // vc.urlString = model.link_url
// UIViewController.navTopViewController?.navigationController?.pushViewController(vc, animated: true) // UIViewController.navTopViewController?.navigationController?.pushViewController(vc, animated: true)
break break
case 20: //跳转原生页面 case 20: //跳转原生页面
if let vc = UIViewController.classFromString(model.link_url) { if let vc = UIViewController.classFromString(model.skip_url) {
UIViewController.navTopViewController?.navigationController?.pushViewController(vc, animated: true) UIViewController.navTopViewController?.navigationController?.pushViewController(vc, animated: true)
} }
break break
......
...@@ -14,8 +14,11 @@ class YHAllApiName { ...@@ -14,8 +14,11 @@ class YHAllApiName {
//首页配置接口 //首页配置接口
static let homeConfigApi = "common/homepage-config/index" static let homeConfigApi = "common/homepage-config/index"
//获取首页展示的资讯
static let consult = "infoflow/home/consult" static let consult = "infoflow/home/consult"
//获取首页展示的banner
static let banner = "infoflow/banner/list"
} }
//order 模块 //order 模块
......
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