Commit e93760b9 authored by pete谢兆麟's avatar pete谢兆麟

web详情页面点赞收藏

parent f420e0ce
......@@ -231,6 +231,8 @@
0480976B2BA15269000B9DCA /* YHCertificateInfoCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0480976A2BA15269000B9DCA /* YHCertificateInfoCell.swift */; };
0480976D2BA158A1000B9DCA /* YHCertificateListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0480976C2BA158A1000B9DCA /* YHCertificateListVC.swift */; };
048097712BA18D66000B9DCA /* YHCertificateSearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048097702BA18D66000B9DCA /* YHCertificateSearchBar.swift */; };
048B2A442BC7901900A93BF0 /* YHHomeWebViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048B2A432BC7901900A93BF0 /* YHHomeWebViewModel.swift */; };
048B2A462BC7912400A93BF0 /* YHWebModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048B2A452BC7912400A93BF0 /* YHWebModel.swift */; };
0493B3DC2BA7EFE600AF9393 /* YHCertificateSearchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0493B3DB2BA7EFE600AF9393 /* YHCertificateSearchViewController.swift */; };
0493B3DE2BA80C2300AF9393 /* YHCertificateFilterButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0493B3DD2BA80C2300AF9393 /* YHCertificateFilterButton.swift */; };
049537852BA9B28500AF7E59 /* YHCertificateTemplateCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 049537842BA9B28500AF7E59 /* YHCertificateTemplateCell.swift */; };
......@@ -666,6 +668,8 @@
0480976A2BA15269000B9DCA /* YHCertificateInfoCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateInfoCell.swift; sourceTree = "<group>"; };
0480976C2BA158A1000B9DCA /* YHCertificateListVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateListVC.swift; sourceTree = "<group>"; };
048097702BA18D66000B9DCA /* YHCertificateSearchBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateSearchBar.swift; sourceTree = "<group>"; };
048B2A432BC7901900A93BF0 /* YHHomeWebViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHHomeWebViewModel.swift; sourceTree = "<group>"; };
048B2A452BC7912400A93BF0 /* YHWebModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHWebModel.swift; sourceTree = "<group>"; };
0493B3DB2BA7EFE600AF9393 /* YHCertificateSearchViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateSearchViewController.swift; sourceTree = "<group>"; };
0493B3DD2BA80C2300AF9393 /* YHCertificateFilterButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateFilterButton.swift; sourceTree = "<group>"; };
049537842BA9B28500AF7E59 /* YHCertificateTemplateCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCertificateTemplateCell.swift; sourceTree = "<group>"; };
......@@ -2148,6 +2152,7 @@
A53F42B82BC3DCA9009CAC70 /* YHHomeKingKongBlockModel.swift */,
049AC4CB2BC6615500F857F4 /* YHHomeListModel.swift */,
049AC4CD2BC674A700F857F4 /* YHHomeClassifyModel.swift */,
048B2A452BC7912400A93BF0 /* YHWebModel.swift */,
);
path = M;
sourceTree = "<group>";
......@@ -2222,6 +2227,7 @@
isa = PBXGroup;
children = (
A5D6AB1C2B46AAFB001C10A5 /* YHHomePageViewModel.swift */,
048B2A432BC7901900A93BF0 /* YHHomeWebViewModel.swift */,
);
path = VM;
sourceTree = "<group>";
......@@ -2490,6 +2496,7 @@
A5ACE93A2B4564F7002C94D2 /* NSAttributedString+Extension.swift in Sources */,
A53F42BB2BC3DE6F009CAC70 /* YHHomeKingKongBlockItem.swift in Sources */,
04E86E662B86EB6F00A35F4B /* YHLoginManager.swift in Sources */,
048B2A442BC7901900A93BF0 /* YHHomeWebViewModel.swift in Sources */,
04A7BD112BA4218B00BD35A2 /* YHMyDocumentsListViewModel.swift in Sources */,
A5EF21352BA6E05E005027E6 /* YHQuestionAndAnswerViewController.swift in Sources */,
A5EF213B2BA6EC98005027E6 /* YHQuestionAndAnswerCell.swift in Sources */,
......@@ -2652,6 +2659,7 @@
045EEED12B9F171A0022A143 /* YHScorePersonInfoCell.swift in Sources */,
044CF8D42BB6BCF700008CE8 /* YHSignatureUploadTableViewCell.swift in Sources */,
045EEF0D2B9F171A0022A143 /* YHBasicInfoFillCell.swift in Sources */,
048B2A462BC7912400A93BF0 /* YHWebModel.swift in Sources */,
045EEEEC2B9F171A0022A143 /* YHBrotherInfoVC.swift in Sources */,
0477E17A2BA41C7E00436346 /* YHCertificateModel.swift in Sources */,
045EEF242B9F171A0022A143 /* YHStepView.swift in Sources */,
......
......@@ -10,6 +10,7 @@ import UIKit
import WebKit
class YHHomeWebViewController: YHBaseViewController, WKUIDelegate, WKNavigationDelegate {
var viewModel: YHHomeWebViewModel!
var webview = WKWebView()
var progBar = UIProgressView()
......@@ -19,7 +20,7 @@ class YHHomeWebViewController: YHBaseViewController, WKUIDelegate, WKNavigationD
override func viewDidLoad() {
super.viewDidLoad()
viewModel = YHHomeWebViewModel()
//获取导航栏高度
let navHeight = self.navigationController?.navigationBar.frame.height
//获取状态栏高度
......@@ -49,19 +50,55 @@ class YHHomeWebViewController: YHBaseViewController, WKUIDelegate, WKNavigationD
let view = YHHomeWebBottomView()
view.likeBlock = { [weak self] flag in
guard let self = self else { return }
if YHLoginManager.shared.isLogin() == false {
let vc = UINavigationController(rootVC: YHPhoneLoginViewController())
vc.modalPresentationStyle = .custom
self.navigationController?.present(vc, animated: true)
return
}
if flag {
self.viewModel.getLike(self.id, 1) {[weak self] success, error in
guard let self = self else { return }
if success {
YHHUD.flash(message: "已点赞")
self.getData()
}
}
} else {
self.viewModel.getLike(self.id, 0) {[weak self] success, error in
guard let self = self else { return }
if success {
YHHUD.flash(message: "已取消点赞")
self.getData()
}
}
}
}
view.starBlock = { [weak self] flag in
guard let self = self else { return }
if YHLoginManager.shared.isLogin() == false {
let vc = UINavigationController(rootVC: YHPhoneLoginViewController())
vc.modalPresentationStyle = .custom
self.navigationController?.present(vc, animated: true)
return
}
if flag {
self.viewModel.getStar(self.id, 1) {[weak self] success, error in
guard let self = self else { return }
if success {
YHHUD.flash(message: "已收藏")
self.getData()
}
}
} else {
self.viewModel.getStar(self.id, 0) {[weak self] success, error in
guard let self = self else { return }
if success {
YHHUD.flash(message: "已取消收藏")
self.getData()
}
}
}
}
return view
......@@ -80,7 +117,14 @@ class YHHomeWebViewController: YHBaseViewController, WKUIDelegate, WKNavigationD
}
func getData() {
viewModel.getWebDetail(self.id) {[weak self] success, error in
guard let self = self else { return }
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
}
}
// MARK: - WKNavigationDelegate
......
//
// YHWebModel.swift
// galaxy
//
// Created by EDY on 2024/4/11.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHWebModel: YHBaseModel {
var like_count: Int = 0
var id: Int = 0
var is_like: Bool = false
var view_count: Int = 0
var is_collect: Bool = false
var collect_count: Int = 0
}
......@@ -12,23 +12,26 @@ class YHHomeWebBottomView: UIView {
typealias Block = (Bool) -> ()
var likeBlock: Block?
var starBlock: Block?
private var likeButton: YHHomeWebBottomButton!
private var starButton: YHHomeWebBottomButton!
var likeButton: YHHomeWebBottomButton!
var starButton: YHHomeWebBottomButton!
var likeCount: Int = 0
var starCount: Int = 0
var isStar: Bool = false {
didSet {
if isStar {
starButton.setContent("home_web_stared", "34")
starButton.setContent("home_web_stared", "\(starCount)")
} else {
starButton.setContent("home_web_star", "34")
starButton.setContent("home_web_star", "\(starCount)")
}
}
}//是否收藏
var isLike: Bool = false {
didSet {
if isLike {
likeButton.setContent("home_web_liked", "34")
likeButton.setContent("home_web_liked", "\(likeCount)")
} else {
likeButton.setContent("home_web_like", "34")
likeButton.setContent("home_web_like", "\(likeCount)")
}
}
}//是否点赞
......
//
// YHHomeWebViewModel.swift
// galaxy
//
// Created by EDY on 2024/4/11.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHHomeWebViewModel : YHBaseViewModel {
//数据源
var mainModel :YHWebModel?
}
extension YHHomeWebViewModel {
//请求web详情
func getWebDetail(_ id: Int, callBackBlock:@escaping (_ success: Bool, _ error:YHErrorModel?)->()) {
let params: [String : Any] = ["id": id]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.webInfo
let _ = YHNetRequest.getRequest(url: strUrl, params: params) { [weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
let dic = json.data
guard let resultModel = YHWebModel.deserialize(from: dic as? Dictionary) else {
callBackBlock(false,nil)
return
}
self.mainModel = resultModel
callBackBlock(true,nil)
} failBlock: { err in
callBackBlock(false,err)
}
}
// type:0取消 1收藏
func getStar(_ id: Int, _ type: Int, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let params: [String : Any] = ["operate_type": type,
"article_id": id]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.star
let _ = YHNetRequest.postRequest(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
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
// type:0取消 1收藏
func getLike(_ id: Int, _ type: Int, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let params: [String : Any] = ["operate_type": type,
"article_id": id]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Common.like
let _ = YHNetRequest.postRequest(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
callBackBlock(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
}
......@@ -22,6 +22,12 @@ class YHAllApiName {
static let classify = "infoflow/classify/list"
//获取资讯
static let article = "infoflow/article/list"
//资讯详情
static let webInfo = "infoflow/article/info"
//资讯收藏
static let star = "infoflow/article/collect"
//资讯点赞
static let like = "infoflow/article/like"
}
//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