Commit 70ad884f authored by David黄金龙's avatar David黄金龙

Merge branch 'develop' into davidhuang

* develop: (27 commits)
  bug处理
  // 搜索
  标题错误修改
  吴测试牛逼
  处理一处 crash
  //  消息 无数据View
  首页banner  最多10条
  // tag 2.3.9-3
  无状态刷新bug处理
  1、删除不使用的代码 2、处理首页没有
  //  搜索
  返回
  处理 一处展示
  修改版本号
  首页 置顶
  1、处理 首页的数据刷新 2、处理 数据一致性
  // tag:0.2.9.
  多页每次请求  6 控制 banner 不超过6
  修改 版本号 0.2.3
  跳转逻辑
  ...
parents 079fc07c 18c8e063
......@@ -10,6 +10,7 @@
0414BDA92BC7E81500225367 /* YHMyPermissionSettingVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0414BDA82BC7E81500225367 /* YHMyPermissionSettingVC.swift */; };
0414BDAB2BC7E9C200225367 /* YHMyPermissionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0414BDAA2BC7E9C200225367 /* YHMyPermissionCell.swift */; };
0414BDAD2BC7F02C00225367 /* YHMyNotifySettingVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0414BDAC2BC7F02C00225367 /* YHMyNotifySettingVC.swift */; };
0414BDB22BCCC0A500225367 /* YHCollectionModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0414BDB12BCCC0A500225367 /* YHCollectionModel.swift */; };
041B52872B5657B3007EBCEB /* IMAppKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041B52862B5657B3007EBCEB /* IMAppKey.swift */; };
0425E63D2BA9345200A5E763 /* YHSchemeTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0425E63C2BA9345200A5E763 /* YHSchemeTableViewCell.swift */; };
0425E6402BA9357D00A5E763 /* YHScemeItemModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0425E63F2BA9357D00A5E763 /* YHScemeItemModel.swift */; };
......@@ -450,6 +451,7 @@
0414BDA82BC7E81500225367 /* YHMyPermissionSettingVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMyPermissionSettingVC.swift; sourceTree = "<group>"; };
0414BDAA2BC7E9C200225367 /* YHMyPermissionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMyPermissionCell.swift; sourceTree = "<group>"; };
0414BDAC2BC7F02C00225367 /* YHMyNotifySettingVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMyNotifySettingVC.swift; sourceTree = "<group>"; };
0414BDB12BCCC0A500225367 /* YHCollectionModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCollectionModel.swift; sourceTree = "<group>"; };
041B52862B5657B3007EBCEB /* IMAppKey.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IMAppKey.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>"; };
......@@ -893,6 +895,14 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
0414BDB02BCCC09000225367 /* Model */ = {
isa = PBXGroup;
children = (
0414BDB12BCCC0A500225367 /* YHCollectionModel.swift */,
);
path = Model;
sourceTree = "<group>";
};
041B52852B565798007EBCEB /* IM */ = {
isa = PBXGroup;
children = (
......@@ -1924,6 +1934,7 @@
A5ACE8E72B4564F7002C94D2 /* Mine(我的) */ = {
isa = PBXGroup;
children = (
0414BDB02BCCC09000225367 /* Model */,
048B2A4B2BC7DACF00A93BF0 /* ViewModel */,
A5ACE8EB2B4564F7002C94D2 /* V */,
A5ACE8E92B4564F7002C94D2 /* C */,
......@@ -2184,12 +2195,12 @@
A5ACE95B2B45712D002C94D2 /* V */ = {
isa = PBXGroup;
children = (
A5C5B30F2B57677300A7C5D1 /* YHGestureTableView.swift */,
044413F82BC279D200784A14 /* YHHomeWebBottomView.swift */,
044413FA2BC27E6F00784A14 /* YHHomeWebBottomButton.swift */,
A501BE652BC2B76200C4F1FB /* YHHomeHeadView.swift */,
A5C5B2FA2B5535DF00A7C5D1 /* YHHomeBannerView.swift */,
A501BE672BC2B85F00C4F1FB /* YHHomeSearchView.swift */,
A5C5B30F2B57677300A7C5D1 /* YHGestureTableView.swift */,
044E1E862BC3D00E00A3B4AF /* YHSearchItemLayout.swift */,
044E1E822BC3BBFC00A3B4AF /* YHSearchInfoHistoryView.swift */,
044E1E842BC3BEC300A3B4AF /* YHSearchInfoHistoryCell.swift */,
......@@ -2719,6 +2730,7 @@
04A7BD132BA42F4200BD35A2 /* YHMyDocumentsDetailViewController.swift in Sources */,
04A671622BA058DE00C1FB91 /* YHCertificateEditSheetView.swift in Sources */,
A5ACE9432B4564F7002C94D2 /* UILable+Extension.swift in Sources */,
0414BDB22BCCC0A500225367 /* YHCollectionModel.swift in Sources */,
A53D38202BC243F1006AE6F7 /* YHStartPageViewController.swift in Sources */,
045EEE882B9F171A0022A143 /* YHPreviewAcademicAndProfessionalQualificationViewController.swift in Sources */,
0435FA7F2BA178C100024EAE /* YHCommonAlertView.swift in Sources */,
......
......@@ -124,7 +124,10 @@ extension AppDelegate {
//1.设置主窗口
private func setupRootVC() {
let tabBarController = YHTabBarViewController()
let v0 = YHNavigationController(rootVC:YHHomePageViewController())
let homeVC = YHHomePageViewController()
tabBarController.delegate = homeVC
let v0 = YHNavigationController(rootVC:homeVC)
let v1 = YHNavigationController(rootVC:YHServiceViewController())
let v2 = YHNavigationController(rootVC:YHMsgViewController())
let v3 = YHNavigationController(rootVC:YHMyViewController())
......
......@@ -53,6 +53,7 @@ extension YHFourKingViewController {
for item in classify {
let model = item as YHHomeClassifyModel
if model.id == self.id {
if self.classId == 0 {
gk_navTitle = model.name
self.sectionView.items = model.children
let classifyID = model.children.first?.id ?? 0
......@@ -65,6 +66,7 @@ extension YHFourKingViewController {
}
}
}
}
func setupUI() {
gk_navBarAlpha = 1
......@@ -120,6 +122,9 @@ extension YHFourKingViewController : UITableViewDelegate,UITableViewDataSource {
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
if sectionView.items.count == 1 {
return 0
}
return 48
}
......
......@@ -41,7 +41,6 @@ class YHHomePageViewController: YHBaseViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
loadFirstData()
}
lazy var searchView: YHHomeSearchView = {
......@@ -55,6 +54,10 @@ class YHHomePageViewController: YHBaseViewController {
let view = YHHomeHeadView()
return view
}()
var tapTimestamp : CFAbsoluteTime = -10.0
}
private extension YHHomePageViewController {
......@@ -78,11 +81,9 @@ private extension YHHomePageViewController {
guard let self = self else { return }
homeCollectView.es.stopLoadingMore()
if self.viewModel.hasMoreForHomeNews == false {
homeCollectView.es.noticeNoMoreData()
}
self.homeCollectView.reloadData()
}
}
......@@ -95,7 +96,6 @@ private extension YHHomePageViewController {
if self.viewModel.hasMoreForHomeNews == false {
homeCollectView.es.noticeNoMoreData()
}
self.homeCollectView.reloadData()
}
}
......@@ -104,8 +104,6 @@ private extension YHHomePageViewController {
gk_navigationBar.isHidden = true
view.backgroundColor = .white
NotificationCenter.default.addObserver(self, selector: #selector(homepageRefresh), name:YhConstant.YhNotification.refreshHomePageNotifiction, object: nil)
view.addSubview(searchView)
searchView.snp.makeConstraints { make in
make.top.equalTo(k_Height_safeAreaInsetsTop() + 6)
......@@ -156,11 +154,25 @@ extension YHHomePageViewController: UICollectionViewDelegate, UICollectionViewDa
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
guard let model = self.viewModel.arrHomeNewsData?[indexPath.row] else { return }
if model.type == 2 {
let vc = YHHomeWebViewController()
vc.url = YHConfigManager.shared.h5Url + "?id=\(model.id)"
vc.id = model.id
vc.block = { item in
if let arr = self.viewModel.arrHomeNewsData {
for (index,targetItem) in arr.enumerated() {
if targetItem.id == item.id {
targetItem.is_like = item.is_like
targetItem.like_count = item.like_count
self.homeCollectView.reloadItems(at: [IndexPath.SubSequence(item: index, section: 0)])
}
}
}
}
self.navigationController?.pushViewController(vc)
} else if model.type == 1 {
printLog("直接播放视频")
}
}
}
......@@ -170,3 +182,21 @@ extension YHHomePageViewController : CollectionViewWaterfallLayoutDelegate {
return CGSize(width: model.img_width_cell, height: model.img_height_cell)
}
}
extension YHHomePageViewController : UITabBarControllerDelegate {
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
let doubleTapInterval : CGFloat = 0.3
if tabBarController.selectedIndex == 0 {
let timestamp = CFAbsoluteTimeGetCurrent()
printLog(timestamp - self.tapTimestamp)
if timestamp - self.tapTimestamp < doubleTapInterval {
UIView.animate(withDuration: 0.25) {
self.homeCollectView.contentOffset = CGPoint(x: 0, y: -YHHomeHeadView.viewH)//置顶功能
}
}
self.tapTimestamp = timestamp
}
}
}
......@@ -10,8 +10,14 @@ import UIKit
import WebKit
class YHHomeWebViewController: YHBaseViewController, WKUIDelegate, WKNavigationDelegate {
var viewModel: YHHomeWebViewModel!
var operationFlag:Bool = false
typealias Block = (YHWebModel) -> ()
var block: Block?
var viewModel: YHHomeWebViewModel!
var webview = WKWebView()
var progBar = UIProgressView()
var bottomView: YHHomeWebBottomView!
......@@ -60,16 +66,22 @@ class YHHomeWebViewController: YHBaseViewController, WKUIDelegate, WKNavigationD
self.viewModel.getLike(self.id, 1) {[weak self] success, error in
guard let self = self else { return }
if success {
operationFlag = true
YHHUD.flash(message: "已点赞")
self.getData()
} else {
operationFlag = false
}
}
} else {
self.viewModel.getLike(self.id, 0) {[weak self] success, error in
guard let self = self else { return }
if success {
operationFlag = true
YHHUD.flash(message: "已取消点赞")
self.getData()
} else {
operationFlag = false
}
}
}
......@@ -87,16 +99,22 @@ class YHHomeWebViewController: YHBaseViewController, WKUIDelegate, WKNavigationD
self.viewModel.getStar(self.id, 1) {[weak self] success, error in
guard let self = self else { return }
if success {
operationFlag = true
YHHUD.flash(message: "已收藏")
self.getData()
} else {
operationFlag = false
}
}
} else {
self.viewModel.getStar(self.id, 0) {[weak self] success, error in
guard let self = self else { return }
if success {
operationFlag = true
YHHUD.flash(message: "已取消收藏")
self.getData()
} else {
operationFlag = false
}
}
}
......@@ -132,11 +150,17 @@ class YHHomeWebViewController: YHBaseViewController, WKUIDelegate, WKNavigationD
func getData() {
viewModel.getWebDetail(self.id) {[weak self] success, error in
guard let self = self else { return }
if success {
guard let model = self.viewModel.mainModel else { return }
bottomView.likeCount = model.like_count
bottomView.starCount = model.collect_count
bottomView.isStar = model.is_collect
bottomView.isLike = model.is_like
if operationFlag {
self.block?(model)
}
}
}
}
......
......@@ -12,6 +12,7 @@ class YHSearchInfomationVC: YHBaseViewController {
static let searchInfoHistoryKey = "searchInfoHistoryKey"
static let searchHistoryMaxCount = 10
var searchStr = ""
var items:[YHHomeListModel] = []
lazy var viewModel: YHHomePageViewModel = {
......@@ -39,9 +40,16 @@ class YHSearchInfomationVC: YHBaseViewController {
bar.searchBlock = {
[weak self] text in
guard let self = self else { return }
searchText(self.searchBar.textField.text ?? "")
if let searchText = self.searchBar.textField.text, searchText.count > 0 {
self.saveSearchHistory(searchText)
searchStr = self.searchBar.textField.text ?? ""
searchStr = searchStr.trimmingCharacters(in: .whitespaces)
if isEmptyString(searchStr) {
searchStr = "香港身份"
self.searchBar.textField.text = "香港身份"
}
searchText()
if searchStr.count > 0 {
self.saveSearchHistory(searchStr)
}
}
bar.textChange = {
......@@ -73,6 +81,12 @@ class YHSearchInfomationVC: YHBaseViewController {
tableView.backgroundColor = .white
tableView.backgroundView = emptyDataTipsView
tableView.register(YHSearchInfoCell.self, forCellReuseIdentifier: YHSearchInfoCell.cellReuseIdentifier)
tableView.es.addPullToRefresh {
self.loadFirstData()
}
tableView.es.addInfiniteScrolling {
self.loadMoreData()
}
return tableView
}()
......@@ -84,7 +98,8 @@ class YHSearchInfomationVC: YHBaseViewController {
guard let self = self else { return }
self.searchHistoryView.isHidden = true
self.searchBar.textField.text = text
searchText(text)
self.searchStr = text
searchText()
self.saveSearchHistory(text)
}
return view
......@@ -159,12 +174,53 @@ class YHSearchInfomationVC: YHBaseViewController {
}
}
func searchText(_ text:String) {
func searchText() {
self.tableView.scrollToTop()
YHHUD.show(.progress(message: "搜索中..."))
self.viewModel.searchArticleList(text) {
viewModel.searchArticleList(self.searchStr, isFirstPage : true) {
[weak self] success, error in
YHHUD.hide()
guard let self = self else { return }
items.removeAll()
if let arr = self.viewModel.arrHomeNewsData {
items.append(contentsOf: arr)
}
emptyDataTipsView.isHidden = (items.count > 0)
searchHistoryView.isHidden = true
self.tableView.reloadData()
tableView.es.stopPullToRefresh()
if self.viewModel.hasMoreForHomeNews == false {
tableView.es.noticeNoMoreData()
}
}
}
func loadMoreData() {
viewModel.searchArticleList(self.searchStr, isFirstPage : false) {
[weak self] success, error in
guard let self = self else { return }
items.removeAll()
if let arr = self.viewModel.arrHomeNewsData {
items.append(contentsOf: arr)
}
emptyDataTipsView.isHidden = (items.count > 0)
searchHistoryView.isHidden = true
self.tableView.reloadData()
tableView.es.stopLoadingMore()
if self.viewModel.hasMoreForHomeNews == false {
tableView.es.noticeNoMoreData()
}
}
}
func loadFirstData() {
viewModel.searchArticleList(self.searchStr, isFirstPage : true) {
[weak self] success, error in
guard let self = self else { return }
items.removeAll()
if let arr = self.viewModel.arrHomeNewsData {
items.append(contentsOf: arr)
......@@ -172,6 +228,10 @@ class YHSearchInfomationVC: YHBaseViewController {
emptyDataTipsView.isHidden = (items.count > 0)
searchHistoryView.isHidden = true
self.tableView.reloadData()
tableView.es.stopPullToRefresh()
if self.viewModel.hasMoreForHomeNews == false {
tableView.es.noticeNoMoreData()
}
}
}
......@@ -187,10 +247,13 @@ class YHSearchInfomationVC: YHBaseViewController {
if isEmptyString(text) { return }
var arr = getSearchHistoryList()
// 去除两端的空格
let targetText = text.trimmingCharacters(in: .whitespaces)
// 查找历史记录中是否有相同记录
var targetIndex = -1
for (index, history) in arr.enumerated() {
if history == text {
if history == targetText {
targetIndex = index
break
}
......@@ -202,9 +265,9 @@ class YHSearchInfomationVC: YHBaseViewController {
// 将最近记录放在第一位
if arr.count < Self.searchHistoryMaxCount {
arr.insert(text, at: 0)
arr.insert(targetText, at: 0)
} else {
arr.insert(text, at: 0)
arr.insert(targetText, at: 0)
arr.removeLast()
}
UserDefaults.standard.set(arr, forKey: Self.searchInfoHistoryKey)
......@@ -233,7 +296,7 @@ extension YHSearchInfomationVC: UITableViewDelegate, UITableViewDataSource {
if 0 <= indexPath.section && indexPath.section < items.count {
let item = items[indexPath.section]
cell.updateModel(item)
cell.renderHighLightText(self.searchBar.textField.text ?? "")
cell.renderHighLightText(searchStr)
}
return cell
}
......
......@@ -26,7 +26,7 @@ class YHStartPageViewController: UIViewController {
lazy var closeBtn: UIButton = {
let button = UIButton(type: .custom)
button.titleLabel?.font = UIFont.PFSC_R(ofSize: 12)
button.setTitle("跳过 5", for: .normal)
button.setTitle("跳过 3", for: .normal)
button.setTitleColor( UIColor(hex:0xffffff), for: .normal)
button.setBackgroundColor(color: UIColor(red: 0.071, green: 0.102, blue: 0.149, alpha: 0.3), forState: .normal)
return button
......@@ -98,7 +98,9 @@ private extension YHStartPageViewController {
//1.设置主窗口
func setupRootVC() {
let tabBarController = YHTabBarViewController()
let v0 = YHNavigationController(rootVC:YHHomePageViewController())
let homeVC = YHHomePageViewController()
tabBarController.delegate = homeVC
let v0 = YHNavigationController(rootVC:homeVC)
let v1 = YHNavigationController(rootVC:YHServiceViewController())
let v2 = YHNavigationController(rootVC:YHMsgViewController())
let v3 = YHNavigationController(rootVC:YHMyViewController())
......
......@@ -16,4 +16,16 @@ class YHBannerModel: YHBaseModel {
var create_at: String = ""
var skip_type: Int = 0
var id: Int = 0
//是否为本地
var isLocalItemFlag : Bool = false
//
static func localDefaultItem() -> YHBannerModel {
let model = YHBannerModel()
model.isLocalItemFlag = true
model.img_url = "home_banner_default_icon"
model.type = 0
return model
}
}
......@@ -18,12 +18,12 @@ class YHHomeListModel: YHBaseModel {
var id: Int = 0
var title: String = ""
var content: String = ""
var view_count: Int = 0
var view_count: Int = 0 //浏览数量
var img_url: String = ""
var type: Int = 0 //文章类型 '文章类型 1视频 2图文 3图片',
var is_like : Bool = false
var media_url : String = ""
var like_count : Int = 0
var like_count : Int = 0 //点赞梳理
......
......@@ -75,9 +75,20 @@ private extension YHHomeBannerCollectionViewCell {
func updateUI() {
guard let model = dataModel else { return }
if model.isLocalItemFlag {
bannerTitleLable.isHidden = true
effectV.isHidden = true
bannerImagV.image = UIImage(named: model.img_url)
} else {
bannerTitleLable.isHidden = false
effectV.isHidden = false
if let url = URL(string: model.img_url) {
bannerImagV.kf.setImage(with: url)
}
bannerTitleLable.text = model.name
}
}
}
......@@ -75,6 +75,7 @@ extension YHHomeBannerIndicatorView {
make.top.bottom.equalToSuperview()
make.width.equalTo(16)
}
view.backgroundColor = selectedColor
} else if i == indicatorItems - 1 {
view.snp.makeConstraints { make in
make.left.equalTo(tagView!.snp.right).offset(3)
......
......@@ -106,6 +106,9 @@ extension YHHomeBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
return
}
let model = dataArr[index]
if model.isLocalItemFlag {
return
}
if model.skip_url.isEmpty == false {
switch model.skip_type {
case 1: //跳转H5
......
......@@ -36,7 +36,7 @@ private extension YHHomeSearchView {
let lable = UILabel()
lable.text = "大家正在搜香港身份"
lable.text = "香港身份"
lable.font = UIFont.PFSC_R(ofSize: 12)
lable.textColor = UIColor(hex: 0x94A3B8, alpha: 1.0)
addSubview(lable)
......
......@@ -37,7 +37,7 @@ class YHSearchInfoBar: UIView {
lazy var textField:UITextField = {
let textField = UITextField()
textField.backgroundColor = .clear
textField.attributedPlaceholder = NSAttributedString(string: "大家正在搜香港身份".local, attributes: [NSAttributedString.Key.foregroundColor : UIColor(hex: 0x94A3B8)])
textField.attributedPlaceholder = NSAttributedString(string: "香港身份".local, attributes: [NSAttributedString.Key.foregroundColor : UIColor(hex: 0x94A3B8)])
textField.font = UIFont.PFSC_M(ofSize: 12)
textField.tintColor = UIColor(hex: 0x3570DC)
textField.textColor = UIColor(hexString: "#121A26")
......
......@@ -17,7 +17,7 @@ class YHHomePageViewModel : YHBaseViewModel {
var hkList: [YHHKEventModel]?
//首页相关参数
private var curPageIndex : Int = 1
private var page_Size : Int = 10
private var page_Size : Int = 6
private var totalCount : Int = 0
var hasMoreForHomeNews : Bool = true
}
......@@ -70,6 +70,7 @@ extension YHHomePageViewModel {
return
}
for item in result.data {
item.calHeightParam()
}
......@@ -77,7 +78,9 @@ extension YHHomePageViewModel {
if firstPageFlag {
self.totalCount = result.total
self.arrHomeNewsData = result.data
curPageIndex = 1
} else {
curPageIndex = curPageIndex + 1
self.arrHomeNewsData?.append(contentsOf: result.data)
}
......@@ -111,16 +114,41 @@ extension YHHomePageViewModel {
if json.code == 200 {
let dic = json.data
guard let result = [YHBannerModel].deserialize(from: dic as? [Any]) else {
let model = YHBannerModel.localDefaultItem()
self.banners?.removeAll()
self.banners = [model]
callBackBlock(false,nil)
return
}
self.banners = result as? [YHBannerModel]
var arrData = result as? [YHBannerModel]
if let arr = arrData {
if arr.isEmpty {
let model = YHBannerModel.localDefaultItem()
arrData = [model]
} else if arr.count > 10 {
arrData = Array(arrData?[0...9] ?? [])
}
}
self.banners = arrData
callBackBlock(true, nil)
} else {
let model = YHBannerModel.localDefaultItem()
self.banners?.removeAll()
self.banners = [model]
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
let model = YHBannerModel.localDefaultItem()
self.banners?.removeAll()
self.banners = [model]
callBackBlock(false,err)
}
}
......@@ -160,6 +188,7 @@ extension YHHomePageViewModel {
params = ["page": curPageIndex + 1,
"page_size": page_Size,
"classify_id[0]": classifyID]
curPageIndex = curPageIndex + 1
}
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.article
let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in
......@@ -226,10 +255,20 @@ extension YHHomePageViewModel {
}
// 搜索
func searchArticleList(_ title: String, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let params: [String : Any] = ["page": 1,
func searchArticleList(_ title: String, isFirstPage:Bool, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
var params: [String : Any] = [:]
if isFirstPage {
curPageIndex = 1
params = ["page": curPageIndex,
"page_size": 10,
"title": title]
} else {
params = ["page": curPageIndex + 1,
"page_size": 10,
"title": title]
}
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 }
......@@ -245,14 +284,31 @@ extension YHHomePageViewModel {
for item in result.data {
item.calHeightParam()
}
if isFirstPage {
self.totalCount = result.total
self.arrHomeNewsData = result.data
curPageIndex = 1
} else {
curPageIndex = curPageIndex + 1
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
self.arrHomeNewsData = []
callBackBlock(false,err)
}
}
......
......@@ -60,6 +60,7 @@ extension YHServerHKLifeViewController {
let model = item as YHHomeClassifyModel
if model.id == 2 {
self.sectionView.items = model.children
if self.classId == 0 {
let classifyID = model.children.first?.id ?? 0
self.classId = classifyID
self.homeViewModel.getList(true, classifyID) {[weak self] success, error in
......@@ -73,6 +74,7 @@ extension YHServerHKLifeViewController {
}
}
}
}
func setupUI() {
gk_navBarAlpha = 0
......@@ -107,9 +109,9 @@ extension YHServerHKLifeViewController {
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.homeTableView.es.stopLoadingMore()
self.dataSouce = self.homeViewModel.arrHomeNewsData ?? []
if self.homeViewModel.hasMoreForHomeNews == false {
self.homeTableView.es.noticeNoMoreData()
......@@ -131,6 +133,9 @@ extension YHServerHKLifeViewController : UITableViewDelegate,UITableViewDataSour
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
if sectionView.items.count == 1 {
return 0
}
return 48
}
......@@ -154,6 +159,7 @@ extension YHServerHKLifeViewController : UITableViewDelegate,UITableViewDataSour
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell0 = tableView.dequeueReusableCell(withClass: YHServerHKLifeViewCell.self)
cell0.tableFootView.items = dataSouce
cell0.tableFootView.myCollectView.es.removeRefreshFooter()
cell0.selectionStyle = .none
return cell0
}
......
......@@ -44,6 +44,7 @@ extension YHServiceListViewController {
let model = item as YHHomeClassifyModel
if model.id == 1 {
self.normalView.sectionView.items = model.children
if self.classId == 0 {
let classifyID = model.children.first?.id ?? 0
self.classId = classifyID
self.homeViewModel.getList(true, classifyID) {[weak self] success, error in
......@@ -56,6 +57,7 @@ extension YHServiceListViewController {
}
}
}
}
if YHLoginManager.shared.isLogin() == false {
......@@ -104,6 +106,7 @@ extension YHServiceListViewController {
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.homeTableView.es.stopLoadingMore()
self.normalView.dataSouce = self.homeViewModel.arrHomeNewsData ?? []
if self.homeViewModel.hasMoreForHomeNews == false {
self.normalView.homeTableView.es.noticeNoMoreData()
......
......@@ -13,6 +13,7 @@ class YHCommonAlertView: UIView {
var agreeBlock: AgreeBlock?
var centerView: UIView!
var titleLabel: UILabel!
var lineView: UIView!
var messageLabel: UILabel!
var agreeButton: UIButton!
var disAgressButton: UIButton!
......@@ -149,6 +150,17 @@ class YHCommonAlertView: UIView {
make.height.equalTo(45)
}
lineView = {
let line = UIView()
line.backgroundColor = UIColor(hex: 0xF0F0F0)
return line
}()
centerView.addSubview(lineView)
lineView.snp.makeConstraints { make in
make.left.right.equalTo(0)
make.height.equalTo(1)
make.top.equalTo(titleLabel.snp.bottom).offset(12)
}
}
@objc func agree() {
......
......@@ -92,14 +92,20 @@ extension YHHomeCollectionViewCell {
@objc func clickPlayButton() {
guard let listModel = listModel else { return }
//"https://upload.cdn.galaxy-immi.com/sell/production/video/1638527500518.mp4"
if listModel.media_url.isEmpty == false,let url = URL(string: listModel.media_url) {
let player = AVPlayer(url:url)
player.isMuted = true
playerViewController.player = player
self.parentViewController?.present(playerViewController, animated: true) {
self.playerViewController.player!.play() // 开始播放视频
}
DispatchQueue.main.async {
self.viewModel.getWebDetail(listModel.id) { success, error in
}
}
}
}
......@@ -178,9 +184,15 @@ extension YHHomeCollectionViewCell {
heartImageViewBtn.isSelected = listModel.is_like
if listModel.type == 1 {
//视频
playButton.isHidden = false
let tap = UITapGestureRecognizer(target: self, action: #selector(tapView(gestureRecognizer:)))
contentView.addGestureRecognizer(tap)
} else {
//资讯
playButton.isHidden = true
contentView.removeGestureRecognizers()
}
}
......@@ -194,6 +206,7 @@ extension YHHomeCollectionViewCell {
if success {
YHHUD.flash(message: "已点赞")
listModel.is_like = true
listModel.like_count = listModel.like_count + 1
updataSubViews()
}
}
......@@ -203,16 +216,20 @@ extension YHHomeCollectionViewCell {
if success {
YHHUD.flash(message: "已取消点赞")
listModel.is_like = false
listModel.like_count = listModel.like_count - 1
updataSubViews()
}
}
}
NotificationCenter.default.post(name:YhConstant.YhNotification.refreshHomePageNotifiction, object: nil)
} else {
let vc = UINavigationController(rootVC: YHPhoneLoginViewController())
vc.modalPresentationStyle = .custom
self.parentViewController?.navigationController?.present(vc, animated: true)
}
}
@objc func tapView(gestureRecognizer:UITapGestureRecognizer) {
clickPlayButton()
}
}
......@@ -58,6 +58,7 @@ class YHServerNoOrderView: UIView {
}()
tableHeadView = YHServerTableHeadView()
tableHeadView.titleLabel.text = "香港身份攻略"
tableHeadView.frame = CGRect(x: 0, y: 0, width: KScreenWidth, height: 365)
addSubview(homeTableView)
homeTableView.tableHeaderView = tableHeadView
......@@ -70,7 +71,6 @@ class YHServerNoOrderView: UIView {
homeTableView.es.addInfiniteScrolling {[weak self] in
guard let self = self else { return }
self.homeTableView.es.stopLoadingMore()
if let block = self.loadMoreBlock {
block(YHClassifyModel())
}
......@@ -90,6 +90,9 @@ extension YHServerNoOrderView : UITableViewDelegate,UITableViewDataSource {
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
if sectionView.items.count == 1 {
return 0
}
return 48
}
......@@ -113,6 +116,7 @@ extension YHServerNoOrderView : UITableViewDelegate,UITableViewDataSource {
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell0 = tableView.dequeueReusableCell(withClass: YHServerHKLifeViewCell.self)
cell0.tableFootView.items = dataSouce
cell0.tableFootView.myCollectView.es.removeRefreshFooter()
cell0.selectionStyle = .none
return cell0
}
......
......@@ -14,7 +14,7 @@ class YHServiceBannerView: UIView {
// 位置、大小、图片、文本
var dataArr: [YHBannerModel] = [] {
didSet {
self.pageControl.numberOfPages = self.dataArr.count
self.indicatorView.indicatorItems = self.dataArr.count
bannerView.reloadData()
}
}
......@@ -46,6 +46,10 @@ class YHServiceBannerView: UIView {
return view
}()
lazy var indicatorView : YHHomeBannerIndicatorView = {
let view = YHHomeBannerIndicatorView()
return view
}()
}
private extension YHServiceBannerView {
......@@ -60,7 +64,13 @@ private extension YHServiceBannerView {
make.left.bottom.right.equalToSuperview()
make.height.equalTo(25)
}
setupPageControl()
// setupPageControl()
bannerView.addSubview(indicatorView)
indicatorView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.height.equalTo(2)
make.bottom.equalTo(-14)
}
bannerView.reloadData()
}
......@@ -133,6 +143,11 @@ extension YHServiceBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
return
}
let model = dataArr[index]
if model.isLocalItemFlag {
return
}
if model.skip_url.isEmpty == false {
switch model.skip_type {
case 1: //跳转H5
......@@ -157,10 +172,10 @@ extension YHServiceBannerView: FSPagerViewDataSource, FSPagerViewDelegate {
}
func pagerViewWillEndDragging(_ pagerView: FSPagerView, targetIndex: Int) {
self.pageControl.currentPage = targetIndex
self.indicatorView.curIndicatorIndex = targetIndex
}
func pagerViewDidEndScrollAnimation(_ pagerView: FSPagerView) {
self.pageControl.currentPage = pagerView.currentIndex
self.indicatorView.curIndicatorIndex = pagerView.currentIndex
}
}
......@@ -79,11 +79,27 @@ extension YHServiceTableFootView: UICollectionViewDelegate, UICollectionViewData
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let model = items[indexPath.row]
guard let model = items[indexPath.row] else { return }
if model.type == 2 {
let vc = YHHomeWebViewController()
vc.url = "https://test-hkdiy-h5.galaxy-immi.com/articleDetail.html?id=\(model?.id ?? 0)"
vc.id = model?.id ?? 0
vc.url = YHConfigManager.shared.h5Url + "?id=\(model.id)"
vc.id = model.id
vc.block = {[weak self] model in
guard let self = self else { return }
let arr = self.items
for (index, targetItem) in arr.enumerated() {
guard let target = targetItem else { return }
if target.id == model.id {
target.is_like = model.is_like
target.like_count = model.like_count
self.myCollectView.reloadItems(at: [IndexPath.SubSequence(item: index, section: 0)])
}
}
}
UIViewController.current?.navigationController?.pushViewController(vc)
} else if model.type == 1 {
printLog("直接播放视频")
}
}
}
......
......@@ -25,6 +25,9 @@ class YHInformationFillVC: YHBaseViewController {
bar.rightBtnClick = {
[weak self] in
guard let self = self else { return }
YHCommonAlertView.show("清除未读", "确定要清除所有未读提示吗?", "取消", "确认") {
}
}
return bar
}()
......
......@@ -10,7 +10,7 @@ import UIKit
class YHMsgViewController: YHBaseViewController {
var msgArr:[String] = ["","","",""]
var msgArr:[String] = ["","",""]
lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped)
......@@ -22,6 +22,7 @@ class YHMsgViewController: YHBaseViewController {
tableView.dataSource = self
tableView.backgroundColor = .white
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell")
tableView.backgroundView = emptyDataTipsView
tableView.register(YHMessageSessionCell.self, forCellReuseIdentifier: YHMessageSessionCell.cellReuseIdentifier)
return tableView
}()
......@@ -40,9 +41,39 @@ class YHMsgViewController: YHBaseViewController {
bar.rightBtnClick = {
[weak self] in
guard let self = self else { return }
YHCommonAlertView.show("清除未读", "确定要清除所有未读提示吗?", "取消", "确认") {
}
}
return bar
}()
lazy var emptyDataTipsView:UIView = {
let view = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 124))
view.isHidden = true
let imgView = UIImageView(image: UIImage(named: "msg_no_data"))
view.addSubview(imgView)
let label = UILabel()
label.textColor = UIColor(hex: 0x94A3B8)
label.font = UIFont.PFSC_R(ofSize: 14)
label.textAlignment = .center
label.text = "暂无新消息".local
view.addSubview(label)
imgView.snp.makeConstraints { make in
make.top.equalToSuperview().offset(204)
make.width.height.equalTo(92)
make.centerX.equalTo(view)
}
label.snp.makeConstraints { make in
make.top.equalTo(imgView.snp.bottom).offset(12)
make.centerX.equalTo(view)
}
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
......
......@@ -64,6 +64,12 @@ extension YHMyNotifySettingVC: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let url = URL(string: UIApplication.openSettingsURLString)
if let url = url, UIApplication .shared.canOpenURL(url) {
UIApplication .shared.open(url, options: [:], completionHandler: {
(success) in
})
}
}
private func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> CGFloat {
......
......@@ -54,6 +54,11 @@ class YHMyPermissionSettingVC: YHBaseViewController {
setupUI()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
requestPermission()
}
func setupUI() {
gk_navTitle = "权限设置".local
view.backgroundColor = .white
......@@ -63,7 +68,9 @@ class YHMyPermissionSettingVC: YHBaseViewController {
make.top.equalToSuperview().offset(k_Height_NavigationtBarAndStatuBar)
make.bottom.equalToSuperview().offset(-k_Height_TabBar)
}
}
func requestPermission() {
// 获取相册权限
requestPhotoLibraryPermission {
[weak self] grant in
......
......@@ -40,6 +40,8 @@ struct PersonalModuleItem {
class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
let viewModel: YHMyLikeViewModel = YHMyLikeViewModel()
lazy var tableView: UITableView = {
let tableView = UITableView(frame: CGRect.zero, style:.grouped)
if #available(iOS 11.0, *) {
......@@ -61,7 +63,8 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
let version = "app版本号:" + UIDevice.appVersion() + "_" + UIDevice.appBuild()
return [PersonalModuleItem(icon: "mine_item_msg", title: "我的消息".local, type:.myMessage),
return [
PersonalModuleItem(icon: "mine_item_msg", title: "我的消息".local, type:.myMessage),
PersonalModuleItem(icon: "mine_item_progress", title: "我的进度".local, type:.myProgress),
PersonalModuleItem(icon: "mine_item_scoreCenter", title: "积分中心".local, type:.scoreCenter),
PersonalModuleItem(icon: "mine_item_recommend", title: "推荐有礼".local, type:.recommend),
......@@ -129,7 +132,11 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
override func viewDidLoad() {
super.viewDidLoad()
initView()
return
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
requestLikeCollectionCount()
}
@objc func clickBtn() {
......@@ -159,48 +166,17 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
}
NotificationCenter.default.addObserver(self, selector: #selector(loginSuccess), name: YhConstant.YhNotification.didLoginSuccessNotifiction, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(logoutSuccess), name: YhConstant.YhNotification.didLogoutSuccessNotifiction, object: nil)
}
func openXLSXRemoteFile(urlString: String) {
guard let url = URL(string: urlString) else { return }
func requestLikeCollectionCount() {
let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration)
let task = session.downloadTask(with: url) { (tempLocalUrl, response, error) in
if let tempLocalUrl = tempLocalUrl, error == nil {
// 下载完成,尝试打开文件
let fileManager = FileManager.default
let destination = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(response?.suggestedFilename ?? UUID().uuidString)
try? fileManager.moveItem(at: tempLocalUrl, to: destination)
// 打开文件
self.openXLSXFile(at: destination)
} else {
print("Error downloading the file: \(error?.localizedDescription ?? "Unknown error")")
}
}
task.resume()
}
func openXLSXFile(at fileURL: URL) {
let controller = UIDocumentInteractionController(url: fileURL)
controller.delegate = self
DispatchQueue.main.async {
controller.presentPreview(animated: true)
}
self.viewModel.getLikeCollectionRecentScanCountInfo {
[weak self] success, error in
guard let self = self else { return }
self.headerView.updateLikeCollectCount(self.viewModel.likeCollectCountInfo)
}
}
extension YHMyViewController: UIDocumentInteractionControllerDelegate {
func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
return self
}
}
......
//
// YHCollectionModel.swift
// galaxy
//
// Created by edy on 2024/4/15.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
import SmartCodable
struct YHCollectionModel: SmartCodable {
var myCollectCount: Int = 0
var myLikeCount: Int = 0
var myViewCount: Int = 0
enum CodingKeys: String, CodingKey {
case myCollectCount = "my_collect_count"
case myLikeCount = "my_like_count"
case myViewCount = "my_view_count"
}
}
......@@ -11,6 +11,10 @@ import AttributedString
class YHUserInfoHeaderView: UIView {
static let likeTag = 9527
static let collectTag = 9528
static let scanTag = 9529
var settingBlock:(()->Void)?
var evaluateBlock:(()->Void)?
var avatarClickBlock:(()->Void)?
......@@ -50,27 +54,72 @@ class YHUserInfoHeaderView: UIView {
return label
}()
private lazy var infoLabel:UILabel = {
private lazy var likeLabel:UILabel = {
let label = UILabel()
label.text = "点赞 0 收藏 0 最近浏览 0".local
label.textColor = UIColor(hexString:"#949DB5")
label.text = "点赞 0".local
label.textColor = UIColor(hex: 0x949DB5)
label.textAlignment = NSTextAlignment.left
label.font = UIFont.PFSC_R(ofSize: 13)
label.isUserInteractionEnabled = true
label.tag = Self.likeTag
let tap = UITapGestureRecognizer(target: self, action: #selector(tap(gestureRecognizer:)))
label.addGestureRecognizer(tap)
return label
}()
let text1: ASAttributedString = .init("点赞 0 ", .font(UIFont.PFSC_R(ofSize: 13)), .foreground(UIColor(hex: 0x949DB5)), .action {
self.likeClick?()
})
let text2: ASAttributedString = .init("收藏 0 ", .font(UIFont.PFSC_R(ofSize: 13)), .foreground(UIColor(hex: 0x949DB5)), .action {
self.collectClick?()
})
let text3: ASAttributedString = .init("最近浏览 0 ", .font(UIFont.PFSC_R(ofSize: 13)), .foreground(UIColor(hex: 0x949DB5)), .action {
self.recentScanClick?()
})
private lazy var collectLabel:UILabel = {
let label = UILabel()
label.text = "收藏 0".local
label.textColor = UIColor(hex: 0x949DB5)
label.textAlignment = NSTextAlignment.left
label.font = UIFont.PFSC_R(ofSize: 13)
label.isUserInteractionEnabled = true
label.tag = Self.collectTag
let tap = UITapGestureRecognizer(target: self, action: #selector(tap(gestureRecognizer:)))
label.addGestureRecognizer(tap)
return label
}()
label.attributed.text = text1 + text2 + text3
private lazy var scanLabel:UILabel = {
let label = UILabel()
label.text = "最近浏览 0".local
label.textColor = UIColor(hex: 0x949DB5)
label.textAlignment = NSTextAlignment.left
label.font = UIFont.PFSC_R(ofSize: 13)
label.isUserInteractionEnabled = true
label.tag = Self.scanTag
let tap = UITapGestureRecognizer(target: self, action: #selector(tap(gestureRecognizer:)))
label.addGestureRecognizer(tap)
return label
}()
private lazy var line1View:UIView = {
let line = UIView()
line.backgroundColor = UIColor(hex:0x92959D, alpha: 0.2)
return line
}()
private lazy var line2View:UIView = {
let line = UIView()
line.backgroundColor = UIColor(hex:0x92959D, alpha: 0.2)
return line
}()
@objc func tap(gestureRecognizer:UITapGestureRecognizer) {
if let view = gestureRecognizer.view {
if view.tag == Self.likeTag {
self.likeClick?()
} else if view.tag == Self.collectTag {
self.collectClick?()
} else if view.tag == Self.scanTag {
self.recentScanClick?()
}
}
}
private lazy var evaluateView:UIView = {
let view = UIView()
return view
......@@ -129,8 +178,22 @@ class YHUserInfoHeaderView: UIView {
return view
}
private func createUI() {
func updateLikeCollectCount(_ model: YHCollectionModel) {
let likeCount = showCount(model.myLikeCount)
let collectCount = showCount(model.myCollectCount)
let scanCount = showCount(model.myViewCount)
self.likeLabel.text = "点赞 \(likeCount)"
self.collectLabel.text = "收藏 \(collectCount)"
self.scanLabel.text = "最近浏览 \(scanCount)"
}
func showCount(_ count: Int)-> String {
return count < 10000 ? String(count) : String(format: "%.1fw", Double(count/10000))
}
private func createUI() {
self.addSubview(bgImgView)
self.addSubview(settingView)
......@@ -138,7 +201,12 @@ class YHUserInfoHeaderView: UIView {
self.addSubview(avarImgView)
self.addSubview(userNameLabel)
self.addSubview(infoLabel)
self.addSubview(likeLabel)
self.addSubview(collectLabel)
self.addSubview(scanLabel)
self.addSubview(line1View)
self.addSubview(line2View)
self.addSubview(evaluateView)
evaluateView.addSubview(evaluateBgImgView)
......@@ -177,18 +245,47 @@ class YHUserInfoHeaderView: UIView {
make.height.equalTo(25.0)
}
infoLabel.snp.makeConstraints { make in
likeLabel.snp.makeConstraints { make in
make.left.equalTo(avarImgView)
make.right.equalToSuperview().offset(-30)
make.right.equalTo(line1View.snp.left).offset(-12)
make.height.equalTo(15.0)
make.top.equalTo(userNameLabel.snp.bottom).offset(10)
}
likeLabel.setContentCompressionResistancePriority(.required, for: .horizontal)
likeLabel.setContentHuggingPriority(.required, for: .horizontal)
line1View.snp.makeConstraints { make in
make.centerY.equalTo(likeLabel)
make.size.equalTo(CGSize(width: 1, height: 12))
}
collectLabel.snp.makeConstraints { make in
make.left.equalTo(line1View.snp.right).offset(12)
make.right.equalTo(line2View.snp.left).offset(-12)
make.height.equalTo(15.0)
make.top.equalTo(likeLabel)
}
collectLabel.setContentCompressionResistancePriority(.required, for: .horizontal)
collectLabel.setContentHuggingPriority(.required, for: .horizontal)
line2View.snp.makeConstraints { make in
make.centerY.equalTo(likeLabel)
make.size.equalTo(CGSize(width: 1, height: 12))
}
scanLabel.snp.makeConstraints { make in
make.left.equalTo(line2View.snp.right).offset(12)
make.right.equalToSuperview().offset(-31)
make.height.equalTo(15.0)
make.top.equalTo(likeLabel)
}
scanLabel.setContentCompressionResistancePriority(.required, for: .horizontal)
evaluateView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(10)
make.right.equalToSuperview().offset(-7)
make.height.equalTo(98)
make.top.equalTo(infoLabel.snp.bottom).offset(17.0)
make.top.equalTo(likeLabel.snp.bottom).offset(17.0)
}
evaluateBgImgView.snp.makeConstraints { make in
......
......@@ -10,9 +10,9 @@ import UIKit
class YHMyLikeViewModel: YHBaseViewModel {
var arrHomeNewsData: [YHHomeListModel]?
var likeCollectCountInfo: YHCollectionModel = YHCollectionModel()
private var curPageIndex : Int = 1
private var page_Size : Int = 10
private var page_Size : Int = 6
private var totalCount : Int = 0
var hasMoreForHomeNews : Bool = true
}
......@@ -32,6 +32,7 @@ extension YHMyLikeViewModel {
params = ["page": curPageIndex + 1,
"page_size": page_Size,
"operate_type": type]
curPageIndex = curPageIndex + 1
}
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.user
let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in
......@@ -86,6 +87,7 @@ extension YHMyLikeViewModel {
} else {
params = ["page": curPageIndex + 1,
"page_size": page_Size]
curPageIndex = curPageIndex + 1
}
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.userLook
let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in
......@@ -128,4 +130,30 @@ extension YHMyLikeViewModel {
callBackBlock(false,err)
}
}
// 获取点赞、收藏、最近浏览数量
func getLikeCollectionRecentScanCountInfo(callBack:((_ success: Bool,_ error:YHErrorModel?)->())?) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.likeCollect
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 = YHCollectionModel.deserialize(dict: dic as? Dictionary ) else {
let error = YHErrorModel(errorCode: YHErrorCode.dictParseError.rawValue, errorMsg: YHErrorCode.dictParseError.description())
callBack?(false, error)
return
}
self.likeCollectCountInfo = result as YHCollectionModel
callBack?(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBack?(false, error)
}
} failBlock: { err in
callBack?(false,err)
}
}
}
......@@ -32,6 +32,8 @@ class YHAllApiName {
static let userLook = "infoflow/user/view"
//获取香港办事
static let hklist = "infoflow/tool/list"
// 点赞、收藏、最近浏览数量
static let likeCollect = "infoflow/article/myArticleRecord"
}
//order 模块
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "摄图网_501771221_家庭亲子户外露营玩耍(企业商用) 1@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "摄图网_501771221_家庭亲子户外露营玩耍(企业商用) 1@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Group 3112@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Group 3112@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
......@@ -47,7 +47,7 @@
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "无更多数据"
"value" : "没有更多了~"
}
}
}
......
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