Commit 7829efe4 authored by Steven杜宇's avatar Steven杜宇

// 首页资讯

parent a59f17bf
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
04213B2D2C48FEB000797900 /* YHHomeInfoSectionHeadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04213B2C2C48FEB000797900 /* YHHomeInfoSectionHeadView.swift */; }; 04213B2D2C48FEB000797900 /* YHHomeInfoSectionHeadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04213B2C2C48FEB000797900 /* YHHomeInfoSectionHeadView.swift */; };
04213B2F2C49154900797900 /* YHHomeInfoDetailContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04213B2E2C49154900797900 /* YHHomeInfoDetailContainerViewController.swift */; }; 04213B2F2C49154900797900 /* YHHomeInfoDetailContainerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04213B2E2C49154900797900 /* YHHomeInfoDetailContainerViewController.swift */; };
04213B312C4917BD00797900 /* YHHomeInfoDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04213B302C4917BD00797900 /* YHHomeInfoDetailViewController.swift */; }; 04213B312C4917BD00797900 /* YHHomeInfoDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04213B302C4917BD00797900 /* YHHomeInfoDetailViewController.swift */; };
04213B332C4A084600797900 /* YHHomeInfoClassifyModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04213B322C4A084600797900 /* YHHomeInfoClassifyModel.swift */; };
0425E63D2BA9345200A5E763 /* YHSchemeTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0425E63C2BA9345200A5E763 /* YHSchemeTableViewCell.swift */; }; 0425E63D2BA9345200A5E763 /* YHSchemeTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0425E63C2BA9345200A5E763 /* YHSchemeTableViewCell.swift */; };
0425E6402BA9357D00A5E763 /* YHScemeItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0425E63F2BA9357D00A5E763 /* YHScemeItemModel.swift */; }; 0425E6402BA9357D00A5E763 /* YHScemeItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0425E63F2BA9357D00A5E763 /* YHScemeItemModel.swift */; };
0425E6422BA95B1B00A5E763 /* YHSchemeTableFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0425E6412BA95B1B00A5E763 /* YHSchemeTableFooterView.swift */; }; 0425E6422BA95B1B00A5E763 /* YHSchemeTableFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0425E6412BA95B1B00A5E763 /* YHSchemeTableFooterView.swift */; };
...@@ -620,6 +621,7 @@ ...@@ -620,6 +621,7 @@
04213B2C2C48FEB000797900 /* YHHomeInfoSectionHeadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeInfoSectionHeadView.swift; sourceTree = "<group>"; }; 04213B2C2C48FEB000797900 /* YHHomeInfoSectionHeadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeInfoSectionHeadView.swift; sourceTree = "<group>"; };
04213B2E2C49154900797900 /* YHHomeInfoDetailContainerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeInfoDetailContainerViewController.swift; sourceTree = "<group>"; }; 04213B2E2C49154900797900 /* YHHomeInfoDetailContainerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeInfoDetailContainerViewController.swift; sourceTree = "<group>"; };
04213B302C4917BD00797900 /* YHHomeInfoDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeInfoDetailViewController.swift; sourceTree = "<group>"; }; 04213B302C4917BD00797900 /* YHHomeInfoDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeInfoDetailViewController.swift; sourceTree = "<group>"; };
04213B322C4A084600797900 /* YHHomeInfoClassifyModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeInfoClassifyModel.swift; sourceTree = "<group>"; };
0425E63C2BA9345200A5E763 /* YHSchemeTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSchemeTableViewCell.swift; sourceTree = "<group>"; }; 0425E63C2BA9345200A5E763 /* YHSchemeTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSchemeTableViewCell.swift; sourceTree = "<group>"; };
0425E63F2BA9357D00A5E763 /* YHScemeItemModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHScemeItemModel.swift; sourceTree = "<group>"; }; 0425E63F2BA9357D00A5E763 /* YHScemeItemModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHScemeItemModel.swift; sourceTree = "<group>"; };
0425E6412BA95B1B00A5E763 /* YHSchemeTableFooterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSchemeTableFooterView.swift; sourceTree = "<group>"; }; 0425E6412BA95B1B00A5E763 /* YHSchemeTableFooterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSchemeTableFooterView.swift; sourceTree = "<group>"; };
...@@ -2527,6 +2529,7 @@ ...@@ -2527,6 +2529,7 @@
A567E5722BD7643D00D5D5A0 /* YHWebModel.swift */, A567E5722BD7643D00D5D5A0 /* YHWebModel.swift */,
A5A89FD62C256B94005A71DD /* YHHomeLastMessageModel.swift */, A5A89FD62C256B94005A71DD /* YHHomeLastMessageModel.swift */,
A5B6ED752C2593A1001B6732 /* YHSignerInfoModel.swift */, A5B6ED752C2593A1001B6732 /* YHSignerInfoModel.swift */,
04213B322C4A084600797900 /* YHHomeInfoClassifyModel.swift */,
); );
path = M; path = M;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -3703,6 +3706,7 @@ ...@@ -3703,6 +3706,7 @@
045EEEB82B9F171A0022A143 /* YHWorkExampleMessageView.swift in Sources */, 045EEEB82B9F171A0022A143 /* YHWorkExampleMessageView.swift in Sources */,
04F4B76B2BAA7E1E00D13284 /* YHCertificateTemplateSheetView.swift in Sources */, 04F4B76B2BAA7E1E00D13284 /* YHCertificateTemplateSheetView.swift in Sources */,
045EEEA22B9F171A0022A143 /* YHWorkExperienceProjectModel.swift in Sources */, 045EEEA22B9F171A0022A143 /* YHWorkExperienceProjectModel.swift in Sources */,
04213B332C4A084600797900 /* YHHomeInfoClassifyModel.swift in Sources */,
04F316442C3568F000024164 /* YHAboutGalaxyViewController.swift in Sources */, 04F316442C3568F000024164 /* YHAboutGalaxyViewController.swift in Sources */,
0435FA832BA2DEB100024EAE /* YHCardButton.swift in Sources */, 0435FA832BA2DEB100024EAE /* YHCardButton.swift in Sources */,
045EEECA2B9F171A0022A143 /* YHMyDocumentsListViewController.swift in Sources */, 045EEECA2B9F171A0022A143 /* YHMyDocumentsListViewController.swift in Sources */,
......
...@@ -89,7 +89,7 @@ class YHHomeInfoDetailContainerViewController: YHBaseViewController { ...@@ -89,7 +89,7 @@ class YHHomeInfoDetailContainerViewController: YHBaseViewController {
make.height.equalTo(44) make.height.equalTo(44)
} }
self.listContainerView.snp.makeConstraints { make in self.listContainerView.snp.makeConstraints { make in
let gap = isHaveHot ? 44.0+19.0 : 0.0 let gap = isHaveHot ? 44.0+19.0 : 19.0
make.top.equalTo(k_Height_NavigationtBarAndStatuBar+gap) make.top.equalTo(k_Height_NavigationtBarAndStatuBar+gap)
make.left.equalTo(0) make.left.equalTo(0)
make.right.equalTo(0) make.right.equalTo(0)
......
...@@ -51,11 +51,9 @@ class YHHomeInfoDetailViewController: YHBaseViewController { ...@@ -51,11 +51,9 @@ class YHHomeInfoDetailViewController: YHBaseViewController {
self.view.backgroundColor = .white self.view.backgroundColor = .white
self.view.addSubview(self.collectView) self.view.addSubview(self.collectView)
self.collectView.snp.makeConstraints { make in self.collectView.snp.makeConstraints { make in
make.top.equalToSuperview() make.top.bottom.equalToSuperview()
make.left.equalTo(20) make.left.equalTo(20)
make.right.equalTo(-20) make.right.equalTo(-20)
let gap = isShowTab ? 44.0+19.0 : 0.0
make.height.equalTo(KScreenHeight-k_Height_NavigationtBarAndStatuBar-gap)
} }
} }
} }
......
...@@ -16,7 +16,7 @@ class YHHomeInformationViewController: YHBaseViewController { ...@@ -16,7 +16,7 @@ class YHHomeInformationViewController: YHBaseViewController {
return viewModel return viewModel
}() }()
var sectionItems:[String] = ["", "", "", ""] var sectionItems:[YHHomeInfoClassifyModel?] = []
lazy var collectView = { lazy var collectView = {
// 设置布局方向 // 设置布局方向
...@@ -33,6 +33,7 @@ class YHHomeInformationViewController: YHBaseViewController { ...@@ -33,6 +33,7 @@ class YHHomeInformationViewController: YHBaseViewController {
collectinoView.alwaysBounceVertical = true collectinoView.alwaysBounceVertical = true
collectinoView.showsVerticalScrollIndicator = false collectinoView.showsVerticalScrollIndicator = false
collectinoView.es.addYHPullToRefresh { collectinoView.es.addYHPullToRefresh {
self.getClassifies()
self.getTheNewestInfoList(isFirstPage: true) self.getTheNewestInfoList(isFirstPage: true)
} }
collectinoView.es.addInfiniteScrolling { collectinoView.es.addInfiniteScrolling {
...@@ -51,7 +52,7 @@ class YHHomeInformationViewController: YHBaseViewController { ...@@ -51,7 +52,7 @@ class YHHomeInformationViewController: YHBaseViewController {
make.left.equalTo(20) make.left.equalTo(20)
make.right.equalTo(-20) make.right.equalTo(-20)
} }
self.getClassifies()
self.getTheNewestInfoList(isFirstPage:true) self.getTheNewestInfoList(isFirstPage:true)
} }
} }
...@@ -138,6 +139,15 @@ extension YHHomeInformationViewController: JXSegmentedListContainerViewListDeleg ...@@ -138,6 +139,15 @@ extension YHHomeInformationViewController: JXSegmentedListContainerViewListDeleg
} }
extension YHHomeInformationViewController { extension YHHomeInformationViewController {
// 获取栏目
func getClassifies() {
self.viewModel.getHomeInfoClassifies { success, error in
self.sectionItems.removeAll()
self.sectionItems.append(contentsOf: self.viewModel.classifyArr)
self.collectView.reloadData()
}
}
// 获取最新资讯 // 获取最新资讯
func getTheNewestInfoList(isFirstPage: Bool) { func getTheNewestInfoList(isFirstPage: Bool) {
self.viewModel.getList(isFirsPage: isFirstPage) { success, error in self.viewModel.getList(isFirsPage: isFirstPage) { success, error in
......
//
// YHHomeInfoClassifyModel.swift
// galaxy
//
// Created by edy on 2024/7/19.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
class YHHomeInfoClassifyModel: SmartCodable {
var id: Int = 0
var type: Int = 0
var pid: Int = 0
var sort: Int = 0
var level: Int = 0
var isShow: Int = 0
var isMessage: Int = 0
var hotNum: Int = 0
var name: String = ""
var imgURL: String = ""
enum CodingKeys: String, CodingKey {
case id, type, pid, sort, level
case isShow = "is_show"
case isMessage = "is_message"
case hotNum = "hot_num"
case name
case imgURL = "img_url"
}
required init() {
}
}
...@@ -11,7 +11,7 @@ import UIKit ...@@ -11,7 +11,7 @@ import UIKit
class YHHomeInfoSectionCell: UICollectionViewCell { class YHHomeInfoSectionCell: UICollectionViewCell {
static let cellReuseIdentifier = "YHHomeInfoSectionCell" static let cellReuseIdentifier = "YHHomeInfoSectionCell"
lazy var titleLabel: UILabel = { lazy var titleLabel: UILabel = {
let label = UILabel() let label = UILabel()
label.font = .PFSC_R(ofSize: 12) label.font = .PFSC_R(ofSize: 12)
...@@ -22,8 +22,7 @@ class YHHomeInfoSectionCell: UICollectionViewCell { ...@@ -22,8 +22,7 @@ class YHHomeInfoSectionCell: UICollectionViewCell {
}() }()
lazy var imgView: UIImageView = { lazy var imgView: UIImageView = {
let imgV = UIImageView() let imgV = UIImageView(image: UIImage(named: "global_default_image"))
imgV.backgroundColor = .red
return imgV return imgV
}() }()
...@@ -35,7 +34,7 @@ class YHHomeInfoSectionCell: UICollectionViewCell { ...@@ -35,7 +34,7 @@ class YHHomeInfoSectionCell: UICollectionViewCell {
super.init(frame: frame) super.init(frame: frame)
setupUI() setupUI()
} }
func setupUI() { func setupUI() {
self.addSubview(self.imgView) self.addSubview(self.imgView)
self.addSubview(self.titleLabel) self.addSubview(self.titleLabel)
...@@ -49,4 +48,10 @@ class YHHomeInfoSectionCell: UICollectionViewCell { ...@@ -49,4 +48,10 @@ class YHHomeInfoSectionCell: UICollectionViewCell {
make.height.equalTo(20) make.height.equalTo(20)
} }
} }
func updateModel(_ model: YHHomeInfoClassifyModel) {
self.titleLabel.text = model.name
self.imgView.kf.setImage(with: URL(string: model.imgURL), placeholder: UIImage(named: "global_default_image"))
}
} }
...@@ -16,7 +16,7 @@ class YHHomeInfoSectionHeadView: UICollectionReusableView { ...@@ -16,7 +16,7 @@ class YHHomeInfoSectionHeadView: UICollectionReusableView {
static let reuseIdentifier = "YHHomeInfoSectionHeadView" static let reuseIdentifier = "YHHomeInfoSectionHeadView"
var items:[String] = [] { var items:[YHHomeInfoClassifyModel?] = [] {
didSet { didSet {
var row = items.count/3 var row = items.count/3
if row%3 != 0 { if row%3 != 0 {
...@@ -104,16 +104,22 @@ extension YHHomeInfoSectionHeadView: UICollectionViewDelegate, UICollectionViewD ...@@ -104,16 +104,22 @@ extension YHHomeInfoSectionHeadView: UICollectionViewDelegate, UICollectionViewD
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: YHHomeInfoSectionCell.cellReuseIdentifier, for: indexPath) as! YHHomeInfoSectionCell let cell = collectionView.dequeueReusableCell(withReuseIdentifier: YHHomeInfoSectionCell.cellReuseIdentifier, for: indexPath) as! YHHomeInfoSectionCell
if 0 <= indexPath.row, indexPath.row < self.items.count {
if let item = self.items[indexPath.row] {
cell.updateModel(item)
}
}
return cell return cell
} }
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if 0 <= indexPath.row, indexPath.row < self.items.count { if 0 <= indexPath.row, indexPath.row < self.items.count {
let item = self.items[indexPath.row] if let item = self.items[indexPath.row] {
let vc = YHHomeInfoDetailContainerViewController() let vc = YHHomeInfoDetailContainerViewController()
vc.customTitle = item vc.customTitle = item.name
vc.isHaveHot = true vc.isHaveHot = item.hotNum > 0
UIViewController.current?.navigationController?.pushViewController(vc) UIViewController.current?.navigationController?.pushViewController(vc)
}
} }
} }
......
...@@ -15,6 +15,7 @@ class YHHomePageViewModel : YHBaseViewModel { ...@@ -15,6 +15,7 @@ class YHHomePageViewModel : YHBaseViewModel {
var banners: [YHBannerModel]? var banners: [YHBannerModel]?
var classify: [YHHomeClassifyModel]? var classify: [YHHomeClassifyModel]?
var hkList: [YHHKEventModel]? var hkList: [YHHKEventModel]?
var classifyArr:[YHHomeInfoClassifyModel?] = []
//首页相关参数 //首页相关参数
private var curPageIndex : Int = 1 private var curPageIndex : Int = 1
...@@ -376,6 +377,33 @@ extension YHHomePageViewModel { ...@@ -376,6 +377,33 @@ extension YHHomePageViewModel {
} }
} }
func getHomeInfoClassifies(callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let params: [String : Any] = ["is_message": 1]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.homeInfoClassifies
let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in
guard let self = self else { return }
if json.code == 200 {
let dic = json.data
guard let result = [YHHomeInfoClassifyModel].deserialize(array: dic as? [Any]) else {
let err = YHErrorModel(errorCode: YHErrorCode.dictParseError.rawValue, errorMsg: YHErrorCode.dictParseError.description())
self.classifyArr = []
callBackBlock(false,err)
return
}
self.classifyArr = result
callBackBlock(true, nil)
} else {
self.classifyArr = []
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
self.classifyArr = []
callBackBlock(false,err)
}
}
func getHKEvent(callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) { func getHKEvent(callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.hklist let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.hklist
let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in let _ = YHNetRequest.getRequest(url: strUrl) { [weak self] json, code in
......
...@@ -66,6 +66,8 @@ class YHAllApiName { ...@@ -66,6 +66,8 @@ class YHAllApiName {
static let hklist = "infoflow/tool/list" static let hklist = "infoflow/tool/list"
// 点赞、收藏、最近浏览数量 // 点赞、收藏、最近浏览数量
static let likeCollect = "infoflow/article/myArticleRecord" static let likeCollect = "infoflow/article/myArticleRecord"
// 首页资讯栏目
static let homeInfoClassifies = "infoflow/classify/classifies"
} }
......
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