Commit b32b566a authored by Alex朱枝文's avatar Alex朱枝文

社区相关

parent 21456ebd
......@@ -47,10 +47,11 @@ platform :ios do
webFix = "develop_bugfix_web"
kjzf = "kjzf"
develop_fix_adopter = "develop_fix_adopter"
dev_1013 = "dev_1013"
#打包正使用的分支
myPack_branch = develop_fix_adopter
myPack_branch = dev_1013
# 打adhoc包 执行命令 fastlane galaxyTest
......
......@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
objectVersion = 70;
objectVersion = 60;
objects = {
/* Begin PBXBuildFile section */
......@@ -1256,14 +1256,14 @@
04B00FCA2D9AAD6100F640C5 /* YHMakePlanTopView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04B00FC92D9AAD6100F640C5 /* YHMakePlanTopView.swift */; };
04D4EC312E839C1000B0329B /* YHCircleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D4EC302E839C1000B0329B /* YHCircleViewController.swift */; };
04D4EC332E839C2B00B0329B /* YHResourceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D4EC322E839C2B00B0329B /* YHResourceViewController.swift */; };
04D6405A2E84DF07000162AF /* YHConnectListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D640592E84DF07000162AF /* YHConnectListViewController.swift */; };
04D6405E2E84E3B4000162AF /* YHConnectListCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D6405D2E84E3B4000162AF /* YHConnectListCell.swift */; };
04D4EC442E83D0D500B0329B /* YHCircleViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D4EC432E83D0D500B0329B /* YHCircleViewModel.swift */; };
04D4EC462E83D11500B0329B /* YHCircleCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D4EC452E83D11500B0329B /* YHCircleCollectionViewCell.swift */; };
04D4EC482E83D17500B0329B /* YHCircleListModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D4EC472E83D17500B0329B /* YHCircleListModel.swift */; };
04D4EC4A2E83D21000B0329B /* YHCirclePublishViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D4EC492E83D21000B0329B /* YHCirclePublishViewController.swift */; };
04D4EC4C2E83D27200B0329B /* YHCircleDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D4EC4B2E83D27200B0329B /* YHCircleDetailViewController.swift */; };
04D4EC4E2E84F22500B0329B /* YHCircleHeaderReusableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D4EC4D2E84F22500B0329B /* YHCircleHeaderReusableView.swift */; };
04D6405A2E84DF07000162AF /* YHConnectListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D640592E84DF07000162AF /* YHConnectListViewController.swift */; };
04D6405E2E84E3B4000162AF /* YHConnectListCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D6405D2E84E3B4000162AF /* YHConnectListCell.swift */; };
04D8FF552D9258AA00703C75 /* YHPlanScoreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D8FF542D9258AA00703C75 /* YHPlanScoreView.swift */; };
04D8FF572D925A0800703C75 /* YHPlanScoreChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D8FF562D925A0800703C75 /* YHPlanScoreChart.swift */; };
04D8FF592D925E6700703C75 /* YHPlanModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D8FF582D925E6700703C75 /* YHPlanModel.swift */; };
......@@ -2607,14 +2607,14 @@
04B00FC92D9AAD6100F640C5 /* YHMakePlanTopView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMakePlanTopView.swift; sourceTree = "<group>"; };
04D4EC302E839C1000B0329B /* YHCircleViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCircleViewController.swift; sourceTree = "<group>"; };
04D4EC322E839C2B00B0329B /* YHResourceViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHResourceViewController.swift; sourceTree = "<group>"; };
04D640592E84DF07000162AF /* YHConnectListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHConnectListViewController.swift; sourceTree = "<group>"; };
04D6405D2E84E3B4000162AF /* YHConnectListCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHConnectListCell.swift; sourceTree = "<group>"; };
04D4EC432E83D0D500B0329B /* YHCircleViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCircleViewModel.swift; sourceTree = "<group>"; };
04D4EC452E83D11500B0329B /* YHCircleCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCircleCollectionViewCell.swift; sourceTree = "<group>"; };
04D4EC472E83D17500B0329B /* YHCircleListModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCircleListModel.swift; sourceTree = "<group>"; };
04D4EC492E83D21000B0329B /* YHCirclePublishViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCirclePublishViewController.swift; sourceTree = "<group>"; };
04D4EC4B2E83D27200B0329B /* YHCircleDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCircleDetailViewController.swift; sourceTree = "<group>"; };
04D4EC4D2E84F22500B0329B /* YHCircleHeaderReusableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCircleHeaderReusableView.swift; sourceTree = "<group>"; };
04D640592E84DF07000162AF /* YHConnectListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHConnectListViewController.swift; sourceTree = "<group>"; };
04D6405D2E84E3B4000162AF /* YHConnectListCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHConnectListCell.swift; sourceTree = "<group>"; };
04D8FF542D9258AA00703C75 /* YHPlanScoreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPlanScoreView.swift; sourceTree = "<group>"; };
04D8FF562D925A0800703C75 /* YHPlanScoreChart.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPlanScoreChart.swift; sourceTree = "<group>"; };
04D8FF582D925E6700703C75 /* YHPlanModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPlanModel.swift; sourceTree = "<group>"; };
......@@ -2667,7 +2667,7 @@
/* End PBXFileReference section */
/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */
043F0ED92E02A60C003354EB /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = {
043F0ED92E02A60C003354EB /* Exceptions for "yinheReplayExt" folder in "yinheReplayExt" target */ = {
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
Info.plist,
......@@ -2677,7 +2677,18 @@
/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */
/* Begin PBXFileSystemSynchronizedRootGroup section */
043F0ECD2E02A60C003354EB /* yinheReplayExt */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (043F0ED92E02A60C003354EB /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = yinheReplayExt; sourceTree = "<group>"; };
043F0ECD2E02A60C003354EB /* yinheReplayExt */ = {
isa = PBXFileSystemSynchronizedRootGroup;
exceptions = (
043F0ED92E02A60C003354EB /* Exceptions for "yinheReplayExt" folder in "yinheReplayExt" target */,
);
explicitFileTypes = {
};
explicitFolders = (
);
path = yinheReplayExt;
sourceTree = "<group>";
};
/* End PBXFileSystemSynchronizedRootGroup section */
/* Begin PBXFrameworksBuildPhase section */
......@@ -7383,14 +7394,10 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-galaxy/Pods-galaxy-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-galaxy/Pods-galaxy-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-galaxy/Pods-galaxy-frameworks.sh\"\n";
......@@ -7404,14 +7411,10 @@
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-galaxy/Pods-galaxy-resources-${CONFIGURATION}-input-files.xcfilelist",
);
inputPaths = (
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-galaxy/Pods-galaxy-resources-${CONFIGURATION}-output-files.xcfilelist",
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-galaxy/Pods-galaxy-resources.sh\"\n";
......
......@@ -15,6 +15,7 @@ class YHCirclePublishViewController: YHBaseViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
gk_navigationBar.isHidden = true
title = "发布动态"
navigationItem.leftBarButtonItem = UIBarButtonItem(
......
......@@ -25,7 +25,8 @@ class YHCircleViewController: YHBaseViewController {
flowLayout.headerHeight = 112
let collectionView = UICollectionView(frame: .zero, collectionViewLayout: flowLayout)
collectionView.backgroundColor = .white
collectionView.register(YHCircleCollectionViewCell.self, forCellWithReuseIdentifier: YHCircleCollectionViewCell.cellReuseIdentifier)
// collectionView.register(YHCircleCollectionViewCell.self, forCellWithReuseIdentifier: YHCircleCollectionViewCell.cellReuseIdentifier)
collectionView.register(YHHomeCollectionViewCell.self, forCellWithReuseIdentifier: YHHomeCollectionViewCell.cellReuseIdentifier)
collectionView.register(YHCircleHeaderReusableView.self, forSupplementaryViewOfKind: CollectionViewWaterfallElementKindSectionHeader, withReuseIdentifier: YHCircleHeaderReusableView.reuseIdentifier)
collectionView.delegate = self
collectionView.dataSource = self
......@@ -71,6 +72,7 @@ class YHCircleViewController: YHBaseViewController {
private extension YHCircleViewController {
func setupUI() {
gk_navigationBar.isHidden = true
view.addSubview(circleCollectView)
view.addSubview(publishButton)
circleCollectView.snp.makeConstraints { make in
......@@ -109,7 +111,7 @@ private extension YHCircleViewController {
return
}
if let arrData = result as? [YHCircleListModel] {
if let arrData = result as? [YHHomeListModel] {
for item in arrData {
item.calHeightParam()
}
......@@ -179,7 +181,7 @@ private extension YHCircleViewController {
publishVC.completion = { [weak self] in
self?.getData()
}
let nav = UINavigationController(rootViewController: publishVC)
let nav = YHNavigationController(rootViewController: publishVC)
nav.modalPresentationStyle = .fullScreen
present(nav, animated: true)
}
......@@ -237,21 +239,24 @@ extension YHCircleViewController: UICollectionViewDelegate, UICollectionViewData
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: YHCircleCollectionViewCell.cellReuseIdentifier, for: indexPath) as? YHCircleCollectionViewCell else {
guard let datas = self.viewModel.arrCircleData, datas.count > indexPath.row else {
return UICollectionViewCell()
}
guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: YHHomeCollectionViewCell.cellReuseIdentifier, for: indexPath) as? YHHomeCollectionViewCell else {
return UICollectionViewCell()
}
cell.listModel = self.viewModel.arrCircleData?[indexPath.row]
cell.listModel = datas[indexPath.row]
cell.likeBlock = { [weak self] item in
self?.viewModel.toggleLike(postId: item.id) { success, _ in
if success {
DispatchQueue.main.async {
self?.circleCollectView.reloadItems(at: [indexPath])
}
}
}
}
// cell.clickHeartEvent = { [weak self] item in
// self?.viewModel.toggleLike(postId: item.id) { success, _ in
// if success {
// DispatchQueue.main.async {
// self?.circleCollectView.reloadItems(at: [indexPath])
// }
// }
// }
// }
return cell
}
......@@ -272,18 +277,18 @@ extension YHCircleViewController: UICollectionViewDelegate, UICollectionViewData
guard let model = self.viewModel.arrCircleData?[indexPath.row] else { return }
let detailVC = YHCircleDetailViewController()
detailVC.circleModel = model
detailVC.block = { item in
if let arr = self.viewModel.arrCircleData {
for (index, targetItem) in arr.enumerated() {
if targetItem.id == item.id {
targetItem.is_like = item.is_like
targetItem.like_count = item.like_count
self.circleCollectView.reloadItems(at: [IndexPath(item: index, section: 0)])
}
}
}
}
// detailVC.circleModel = model
// detailVC.block = { item in
// if let arr = self.viewModel.arrCircleData {
// for (index, targetItem) in arr.enumerated() {
// if targetItem.id == item.id {
// targetItem.is_like = item.is_like
// targetItem.like_count = item.like_count
// self.circleCollectView.reloadItems(at: [IndexPath(item: index, section: 0)])
// }
// }
// }
// }
self.navigationController?.pushViewController(detailVC, animated: true)
}
......
......@@ -11,7 +11,7 @@ import UIKit
// MARK: - ViewModel
class YHCircleViewModel {
var arrCircleData: [YHCircleListModel]? = []
var arrCircleData: [YHHomeListModel]? = []
var hasMoreForCircle = true
var preloadItemIndex = 10
private var currentPage = 1
......@@ -40,7 +40,7 @@ class YHCircleViewModel {
}
}
func toggleLike(postId: String, completion: @escaping (Bool, String?) -> Void) {
func toggleLike(postId: Int, completion: @escaping (Bool, String?) -> Void) {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
if let index = self.arrCircleData?.firstIndex(where: { $0.id == postId }) {
let item = self.arrCircleData![index]
......@@ -53,7 +53,7 @@ class YHCircleViewModel {
}
}
private func generateMockCircleData(page: Int) -> [YHCircleListModel] {
private func generateMockCircleData(page: Int) -> [YHHomeListModel] {
let contents = [
"今天天气真不错,出来走走心情都变好了!",
"分享一下最近读的这本书,非常推荐给大家",
......@@ -68,25 +68,12 @@ class YHCircleViewModel {
let locations = ["北京·朝阳区", "上海·浦东新区", "深圳·南山区", "杭州·西湖区", "成都·锦江区", ""]
return (0..<8).map { i in
let model = YHCircleListModel()
model.id = "circle_\(page)_\(i)"
model.user_id = "user_\(i)"
model.user_name = names[i % names.count]
model.user_avatar = "https://picsum.photos/60/60?random=\(i)"
let model = YHHomeListModel()
model.id = i
model.img_url = "https://picsum.photos/60/60?random=\(i)"
model.content = contents[i % contents.count]
model.like_count = Int.random(in: 0...99)
model.comment_count = Int.random(in: 0...20)
model.is_like = Bool.random()
model.create_time = "\(Int.random(in: 1...24))小时前"
model.location = locations[i % locations.count]
model.type = Bool.random() ? 1 : 2
if model.type == 1 && Bool.random() {
let imageCount = Int.random(in: 1...4)
model.images = (0..<imageCount).map { _ in
"https://picsum.photos/300/\(Int.random(in: 200...400))?random=\(UUID().uuidString)"
}
}
return model
}
......
......@@ -14,6 +14,7 @@ import Lottie
class YHHomeCollectionViewCell: UICollectionViewCell {
static let cellReuseIdentifier = "YHHomeCollectionViewCell"
var clickHeartEvent: (() -> Void)?
lazy var viewModel: YHHomeWebViewModel = {
let viewModel = YHHomeWebViewModel()
......@@ -238,6 +239,10 @@ extension YHHomeCollectionViewCell {
@objc func clickHeart() {
guard let listModel = listModel else { return }
if let clickHeartEvent = clickHeartEvent {
clickHeartEvent()
return
}
if YHLoginManager.shared.isLogin() {
if listModel.is_like == false {
......
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