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

生活首页接口及逻辑

parent b5c66582
......@@ -13,21 +13,56 @@ class YHLifeViewController: YHBaseViewController {
var sectionView: YHLifeSectionView!
var tableView: UITableView!
var headView = YHLifeHeadView()
var viewModel: YHHomePageViewModel = YHHomePageViewModel()
var selectSubTab: YHHomeLifeCategoryModel? = nil
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
loadData()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
loadData()
}
}
extension YHLifeViewController {
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() {
......@@ -36,8 +71,10 @@ extension YHLifeViewController {
view.backgroundColor = .white
sectionView = {
let view = YHLifeSectionView()
view.items = ["创业", "教育", "永居"]
view.block = {[weak self] model in
guard let self = self else { return }
self.selectSubTab = self.viewModel.categoryArr[model]
self.getDetailImages()
}
return view
}()
......@@ -71,11 +108,12 @@ extension YHLifeViewController {
extension YHLifeViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
return self.viewModel.detailModel.products.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withClass: YHLifeItemTableViewCell.self)
cell.dataSource = self.viewModel.detailModel.products[indexPath.row]
return cell
}
......
......@@ -23,7 +23,7 @@ class YHLifeHeadView: UIView {
func setUpView() {
addSubview(imageView)
imageView.backgroundColor = .red
imageView.image = UIImage(named: "global_default_image")
imageView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalTo(8)
......
......@@ -12,6 +12,15 @@ class YHLifeItemTableViewCell: UITableViewCell {
var centerImageView: UIImageView!
var titleLabel: 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() {
super.awakeFromNib()
// Initialization code
......@@ -37,7 +46,7 @@ class YHLifeItemTableViewCell: UITableViewCell {
self.backgroundColor = .white
centerImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "invitation_with_gifts_first")
imageView.image = UIImage(named: "global_default_image")
return imageView
}()
contentView.addSubview(centerImageView)
......@@ -49,7 +58,6 @@ class YHLifeItemTableViewCell: UITableViewCell {
titleLabel = {
let view = UILabel()
view.text = "注册公司"
view.font = UIFont.PFSC_M(ofSize: 17)
view.textColor = UIColor.mainTextColor
return view
......@@ -64,7 +72,6 @@ class YHLifeItemTableViewCell: UITableViewCell {
subTitleLabel = {
let view = UILabel()
view.text = "长期稳定银行渠道,可选择的银行多"
view.font = UIFont.PFSC_M(ofSize: 14)
view.textColor = UIColor.mainTextColor50
return view
......
......@@ -521,28 +521,28 @@ extension YHHomePageViewModel {
func getGoodsCategoryDetail(params :[String:Any] = [:], callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.homeLifeDetail
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 = YHHomeLifeCategoryDetailModel.deserialize(dict: dic as? [AnyHashable : Any]) else {
self.detailModel = YHHomeLifeCategoryDetailModel()
callBackBlock(false, nil)
return
}
self.detailModel = result
callBackBlock(true, nil)
} else {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.homeLifeDetail
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 = YHHomeLifeCategoryDetailModel.deserialize(dict: dic as? [AnyHashable : Any]) else {
self.detailModel = YHHomeLifeCategoryDetailModel()
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
callBackBlock(false, nil)
return
}
} failBlock: { err in
self.detailModel = result
callBackBlock(true, nil)
} else {
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