Commit 63aa61da authored by pete谢兆麟's avatar pete谢兆麟

生活首页接口及逻辑

parent b5c66582
...@@ -13,21 +13,56 @@ class YHLifeViewController: YHBaseViewController { ...@@ -13,21 +13,56 @@ class YHLifeViewController: YHBaseViewController {
var sectionView: YHLifeSectionView! var sectionView: YHLifeSectionView!
var tableView: UITableView! var tableView: UITableView!
var headView = YHLifeHeadView() var headView = YHLifeHeadView()
var viewModel: YHHomePageViewModel = YHHomePageViewModel()
var selectSubTab: YHHomeLifeCategoryModel? = nil
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
setupUI() setupUI()
loadData()
} }
override func viewWillAppear(_ animated: Bool) { override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated) super.viewWillAppear(animated)
loadData()
} }
} }
extension YHLifeViewController { extension YHLifeViewController {
func loadData() { func loadData() {
let params : [String : Any] = ["pid" : 3]
self.viewModel.getGoodsCategory(params: params) {
[weak self] success, error in
guard let self = self else { return }
let items = self.viewModel.categoryArr.map { $0?.name }
let result = items.compactMap { $0 }
self.sectionView.items = result
self.selectSubTab = self.viewModel.categoryArr.first ?? YHHomeLifeCategoryModel()
getDetailImages()
}
}
func getDetailImages() {
if let selectItem = self.selectSubTab {
let params:[String: Any] = ["categoryId": "3",
"levelId": selectItem.id]
self.viewModel.getGoodsCategoryDetail(params: params) {
[weak self] success, error in
guard let self = self else { return }
guard let url = URL(string: selectItem.image) else { return }
self.headView.imageView.kf.setImage(with: url)
if self.viewModel.detailModel.products.count == 0 {
let label = UILabel(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: self.view.height - 44 - KScreenWidth - 16))
label.text = "商品未上架,好货不怕晚,敬请期待!"
label.textColor = UIColor.mainTextColor30
label.font = UIFont.PFSC_M(ofSize: 14)
label.textAlignment = .center
self.tableView.tableFooterView = label
} else {
self.tableView.tableFooterView = UIView()
}
self.tableView.reloadData()
}
}
} }
func setupUI() { func setupUI() {
...@@ -36,8 +71,10 @@ extension YHLifeViewController { ...@@ -36,8 +71,10 @@ extension YHLifeViewController {
view.backgroundColor = .white view.backgroundColor = .white
sectionView = { sectionView = {
let view = YHLifeSectionView() let view = YHLifeSectionView()
view.items = ["创业", "教育", "永居"]
view.block = {[weak self] model in view.block = {[weak self] model in
guard let self = self else { return }
self.selectSubTab = self.viewModel.categoryArr[model]
self.getDetailImages()
} }
return view return view
}() }()
...@@ -71,11 +108,12 @@ extension YHLifeViewController { ...@@ -71,11 +108,12 @@ extension YHLifeViewController {
extension YHLifeViewController: UITableViewDelegate, UITableViewDataSource { extension YHLifeViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10 return self.viewModel.detailModel.products.count
} }
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHLifeItemTableViewCell.self) let cell = tableView.dequeueReusableCell(withClass: YHLifeItemTableViewCell.self)
cell.dataSource = self.viewModel.detailModel.products[indexPath.row]
return cell return cell
} }
......
...@@ -23,7 +23,7 @@ class YHLifeHeadView: UIView { ...@@ -23,7 +23,7 @@ class YHLifeHeadView: UIView {
func setUpView() { func setUpView() {
addSubview(imageView) addSubview(imageView)
imageView.backgroundColor = .red imageView.image = UIImage(named: "global_default_image")
imageView.snp.makeConstraints { make in imageView.snp.makeConstraints { make in
make.left.right.equalToSuperview() make.left.right.equalToSuperview()
make.top.equalTo(8) make.top.equalTo(8)
......
...@@ -12,6 +12,15 @@ class YHLifeItemTableViewCell: UITableViewCell { ...@@ -12,6 +12,15 @@ class YHLifeItemTableViewCell: UITableViewCell {
var centerImageView: UIImageView! var centerImageView: UIImageView!
var titleLabel: UILabel! var titleLabel: UILabel!
var subTitleLabel: UILabel! var subTitleLabel: UILabel!
var dataSource: YHProductModel? {
didSet {
guard let dataSource = dataSource else { return }
self.titleLabel.text = dataSource.name
self.subTitleLabel.text = dataSource.description
guard let url = URL(string: dataSource.image) else { return }
self.centerImageView.kf.setImage(with: url)
}
}
override func awakeFromNib() { override func awakeFromNib() {
super.awakeFromNib() super.awakeFromNib()
// Initialization code // Initialization code
...@@ -37,7 +46,7 @@ class YHLifeItemTableViewCell: UITableViewCell { ...@@ -37,7 +46,7 @@ class YHLifeItemTableViewCell: UITableViewCell {
self.backgroundColor = .white self.backgroundColor = .white
centerImageView = { centerImageView = {
let imageView = UIImageView() let imageView = UIImageView()
imageView.image = UIImage(named: "invitation_with_gifts_first") imageView.image = UIImage(named: "global_default_image")
return imageView return imageView
}() }()
contentView.addSubview(centerImageView) contentView.addSubview(centerImageView)
...@@ -49,7 +58,6 @@ class YHLifeItemTableViewCell: UITableViewCell { ...@@ -49,7 +58,6 @@ class YHLifeItemTableViewCell: UITableViewCell {
titleLabel = { titleLabel = {
let view = UILabel() let view = UILabel()
view.text = "注册公司"
view.font = UIFont.PFSC_M(ofSize: 17) view.font = UIFont.PFSC_M(ofSize: 17)
view.textColor = UIColor.mainTextColor view.textColor = UIColor.mainTextColor
return view return view
...@@ -64,7 +72,6 @@ class YHLifeItemTableViewCell: UITableViewCell { ...@@ -64,7 +72,6 @@ class YHLifeItemTableViewCell: UITableViewCell {
subTitleLabel = { subTitleLabel = {
let view = UILabel() let view = UILabel()
view.text = "长期稳定银行渠道,可选择的银行多"
view.font = UIFont.PFSC_M(ofSize: 14) view.font = UIFont.PFSC_M(ofSize: 14)
view.textColor = UIColor.mainTextColor50 view.textColor = UIColor.mainTextColor50
return view return view
......
...@@ -521,28 +521,28 @@ extension YHHomePageViewModel { ...@@ -521,28 +521,28 @@ extension YHHomePageViewModel {
func getGoodsCategoryDetail(params :[String:Any] = [:], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) { func getGoodsCategoryDetail(params :[String:Any] = [:], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.homeLifeDetail let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.homeLifeDetail
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字符串 转 对象 //1. json字符串 转 对象
if json.code == 200 { if json.code == 200 {
let dic = json.data let dic = json.data
guard let result = YHHomeLifeCategoryDetailModel.deserialize(dict: dic as? [AnyHashable : Any]) else { guard let result = YHHomeLifeCategoryDetailModel.deserialize(dict: dic as? [AnyHashable : Any]) else {
self.detailModel = YHHomeLifeCategoryDetailModel()
callBackBlock(false, nil)
return
}
self.detailModel = result
callBackBlock(true, nil)
} else {
self.detailModel = YHHomeLifeCategoryDetailModel() self.detailModel = YHHomeLifeCategoryDetailModel()
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg) callBackBlock(false, nil)
callBackBlock(false, error) return
} }
} failBlock: { err in self.detailModel = result
callBackBlock(true, nil)
} else {
self.detailModel = YHHomeLifeCategoryDetailModel() self.detailModel = YHHomeLifeCategoryDetailModel()
callBackBlock(false, err) let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
} }
} failBlock: { err in
self.detailModel = YHHomeLifeCategoryDetailModel()
callBackBlock(false, err)
}
} }
} }
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