Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
galaxy-iOS
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
mobile-group
galaxy-iOS
Commits
0c18a739
Commit
0c18a739
authored
Jun 25, 2024
by
David黄金龙
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
活动详情接口
parent
5c08655b
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
406 additions
and
130 deletions
+406
-130
project.pbxproj
galaxy/galaxy.xcodeproj/project.pbxproj
+4
-0
YHActivityDetailViewController.swift
...y(社区)/Activity(活动)/C/YHActivityDetailViewController.swift
+48
-72
YHActivityListViewController.swift
...ity(社区)/Activity(活动)/C/YHActivityListViewController.swift
+7
-5
YHActivityDetailModel.swift
.../Community(社区)/Activity(活动)/M/YHActivityDetailModel.swift
+26
-0
YHActivityDetailBottomView.swift
...unity(社区)/Activity(活动)/V/YHActivityDetailBottomView.swift
+20
-3
YHActivityDetailCell.swift
...s/Community(社区)/Activity(活动)/V/YHActivityDetailCell.swift
+106
-8
YHActivityDetailItemView.swift
...mmunity(社区)/Activity(活动)/V/YHActivityDetailItemView.swift
+88
-27
YHActivityTipsItemView.swift
...Community(社区)/Activity(活动)/V/YHActivityTipsItemView.swift
+16
-0
YHActivityTitleItemView.swift
...ommunity(社区)/Activity(活动)/V/YHActivityTitleItemView.swift
+27
-12
YHActivityViewModel.swift
...s/Community(社区)/Activity(活动)/VM/YHActivityViewModel.swift
+37
-3
YHAllApiName.swift
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
+5
-0
Contents.json
...s/Activity/activity_detail_top_bkg.imageset/Contents.json
+22
-0
Rectangle 346241363@2x.png
...tivity_detail_top_bkg.imageset/Rectangle 346241363@2x.png
+0
-0
Rectangle 346241363@3x.png
...tivity_detail_top_bkg.imageset/Rectangle 346241363@3x.png
+0
-0
No files found.
galaxy/galaxy.xcodeproj/project.pbxproj
View file @
0c18a739
...
@@ -374,6 +374,7 @@
...
@@ -374,6 +374,7 @@
A540342F2C2A606900E63A20
/* YHActivityListModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A540342E2C2A606900E63A20
/* YHActivityListModel.swift */
;
};
A540342F2C2A606900E63A20
/* YHActivityListModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A540342E2C2A606900E63A20
/* YHActivityListModel.swift */
;
};
A54034312C2A612100E63A20
/* YHActivityModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A54034302C2A612100E63A20
/* YHActivityModel.swift */
;
};
A54034312C2A612100E63A20
/* YHActivityModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A54034302C2A612100E63A20
/* YHActivityModel.swift */
;
};
A54034342C2A621000E63A20
/* YHActivityViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A54034332C2A621000E63A20
/* YHActivityViewModel.swift */
;
};
A54034342C2A621000E63A20
/* YHActivityViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A54034332C2A621000E63A20
/* YHActivityViewModel.swift */
;
};
A54034362C2A8DE200E63A20
/* YHActivityDetailModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A54034352C2A8DE200E63A20
/* YHActivityDetailModel.swift */
;
};
A554A5122B99715000EA5973
/* YHConstantArrayData.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A554A5112B99715000EA5973
/* YHConstantArrayData.swift */
;
};
A554A5122B99715000EA5973
/* YHConstantArrayData.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A554A5112B99715000EA5973
/* YHConstantArrayData.swift */
;
};
A5551FFE2B4C26CE00510980
/* YHBaseViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A5551FFD2B4C26CE00510980
/* YHBaseViewModel.swift */
;
};
A5551FFE2B4C26CE00510980
/* YHBaseViewModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A5551FFD2B4C26CE00510980
/* YHBaseViewModel.swift */
;
};
A5573ED22B317BFF00D98EC0
/* AppDelegate.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A5573ED12B317BFF00D98EC0
/* AppDelegate.swift */
;
};
A5573ED22B317BFF00D98EC0
/* AppDelegate.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A5573ED12B317BFF00D98EC0
/* AppDelegate.swift */
;
};
...
@@ -939,6 +940,7 @@
...
@@ -939,6 +940,7 @@
A540342E2C2A606900E63A20
/* YHActivityListModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHActivityListModel.swift
;
sourceTree
=
"<group>"
;
};
A540342E2C2A606900E63A20
/* YHActivityListModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHActivityListModel.swift
;
sourceTree
=
"<group>"
;
};
A54034302C2A612100E63A20
/* YHActivityModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHActivityModel.swift
;
sourceTree
=
"<group>"
;
};
A54034302C2A612100E63A20
/* YHActivityModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHActivityModel.swift
;
sourceTree
=
"<group>"
;
};
A54034332C2A621000E63A20
/* YHActivityViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHActivityViewModel.swift
;
sourceTree
=
"<group>"
;
};
A54034332C2A621000E63A20
/* YHActivityViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHActivityViewModel.swift
;
sourceTree
=
"<group>"
;
};
A54034352C2A8DE200E63A20
/* YHActivityDetailModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHActivityDetailModel.swift
;
sourceTree
=
"<group>"
;
};
A554A5112B99715000EA5973
/* YHConstantArrayData.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHConstantArrayData.swift
;
sourceTree
=
"<group>"
;
};
A554A5112B99715000EA5973
/* YHConstantArrayData.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHConstantArrayData.swift
;
sourceTree
=
"<group>"
;
};
A5551FFD2B4C26CE00510980
/* YHBaseViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHBaseViewModel.swift
;
sourceTree
=
"<group>"
;
};
A5551FFD2B4C26CE00510980
/* YHBaseViewModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHBaseViewModel.swift
;
sourceTree
=
"<group>"
;
};
A5573ECE2B317BFF00D98EC0
/* galaxy.app */
=
{
isa
=
PBXFileReference
;
explicitFileType
=
wrapper.application
;
includeInIndex
=
0
;
path
=
galaxy.app
;
sourceTree
=
BUILT_PRODUCTS_DIR
;
};
A5573ECE2B317BFF00D98EC0
/* galaxy.app */
=
{
isa
=
PBXFileReference
;
explicitFileType
=
wrapper.application
;
includeInIndex
=
0
;
path
=
galaxy.app
;
sourceTree
=
BUILT_PRODUCTS_DIR
;
};
...
@@ -2312,6 +2314,7 @@
...
@@ -2312,6 +2314,7 @@
children
=
(
children
=
(
A540342E2C2A606900E63A20
/* YHActivityListModel.swift */
,
A540342E2C2A606900E63A20
/* YHActivityListModel.swift */
,
A54034302C2A612100E63A20
/* YHActivityModel.swift */
,
A54034302C2A612100E63A20
/* YHActivityModel.swift */
,
A54034352C2A8DE200E63A20
/* YHActivityDetailModel.swift */
,
);
);
path
=
M
;
path
=
M
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
...
@@ -3425,6 +3428,7 @@
...
@@ -3425,6 +3428,7 @@
044D0C1A2C22B40B00C5CF5E
/* YHEditPersonalProfileViewController.swift in Sources */
,
044D0C1A2C22B40B00C5CF5E
/* YHEditPersonalProfileViewController.swift in Sources */
,
048787D92BCF68530036E221
/* YHProgressView.swift in Sources */
,
048787D92BCF68530036E221
/* YHProgressView.swift in Sources */
,
045EEEEC2B9F171A0022A143
/* YHBrotherInfoVC.swift in Sources */
,
045EEEEC2B9F171A0022A143
/* YHBrotherInfoVC.swift in Sources */
,
A54034362C2A8DE200E63A20
/* YHActivityDetailModel.swift in Sources */
,
0477E17A2BA41C7E00436346
/* YHCertificateModel.swift in Sources */
,
0477E17A2BA41C7E00436346
/* YHCertificateModel.swift in Sources */
,
045EEF242B9F171A0022A143
/* YHStepView.swift in Sources */
,
045EEF242B9F171A0022A143
/* YHStepView.swift in Sources */
,
044D0BF82C21572B00C5CF5E
/* YHAllowSettingTableViewCell.swift in Sources */
,
044D0BF82C21572B00C5CF5E
/* YHAllowSettingTableViewCell.swift in Sources */
,
...
...
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/C/YHActivityDetailViewController.swift
View file @
0c18a739
...
@@ -9,6 +9,13 @@
...
@@ -9,6 +9,13 @@
import
UIKit
import
UIKit
class
YHActivityDetailViewController
:
YHBaseViewController
{
class
YHActivityDetailViewController
:
YHBaseViewController
{
var
activityId
:
String
=
""
lazy
var
viewModel
:
YHActivityViewModel
=
{
let
vm
=
YHActivityViewModel
()
return
vm
}()
lazy
var
tableView
:
UITableView
=
{
lazy
var
tableView
:
UITableView
=
{
let
tableView
=
UITableView
(
frame
:
.
zero
,
style
:
.
plain
)
let
tableView
=
UITableView
(
frame
:
.
zero
,
style
:
.
plain
)
tableView
.
showsVerticalScrollIndicator
=
false
tableView
.
showsVerticalScrollIndicator
=
false
...
@@ -27,16 +34,10 @@ class YHActivityDetailViewController: YHBaseViewController {
...
@@ -27,16 +34,10 @@ class YHActivityDetailViewController: YHBaseViewController {
return
tableView
return
tableView
}()
}()
// lazy var emptyDataTipsView: YHEmptyDataView = {
lazy
var
topView
:
UIImageView
=
{
// let view = YHEmptyDataView.createView("暂无活动", kNoFriendsBgName)
let
view
=
UIImageView
()
// view.topMargin = 222
view
.
contentMode
=
.
scaleAspectFill
// view.isHidden = true
view
.
image
=
UIImage
(
named
:
"activity_detail_top_bkg"
)
// return view
// }()
lazy
var
topView
:
UIView
=
{
let
view
=
UIView
()
return
view
return
view
}()
}()
...
@@ -49,16 +50,23 @@ class YHActivityDetailViewController: YHBaseViewController {
...
@@ -49,16 +50,23 @@ class YHActivityDetailViewController: YHBaseViewController {
// MARK: - 生命周期方法
// MARK: - 生命周期方法
override
func
viewDidLoad
()
{
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
super
.
viewDidLoad
()
setupUI
()
loadData
()
}
}
extension
YHActivityDetailViewController
{
func
setupUI
()
{
gk_navigationBar
.
isHidden
=
false
gk_navigationBar
.
isHidden
=
false
gk_navigationBar
.
backgroundColor
=
.
clear
gk_navigationBar
.
backgroundColor
=
.
clear
view
.
backgroundColor
=
.
red
//for test hjl
//1.
//1.
view
.
addSubview
(
tableView
)
view
.
addSubview
(
tableView
)
view
.
addSubview
(
bottomView
)
view
.
addSubview
(
bottomView
)
view
.
addSubview
(
topView
)
//2.
tableView
.
contentInsetAdjustmentBehavior
=
.
never
tableView
.
contentInsetAdjustmentBehavior
=
.
never
tableView
.
snp
.
makeConstraints
{
make
in
tableView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
top
.
equalToSuperview
()
make
.
left
.
right
.
top
.
equalToSuperview
()
...
@@ -66,59 +74,50 @@ class YHActivityDetailViewController: YHBaseViewController {
...
@@ -66,59 +74,50 @@ class YHActivityDetailViewController: YHBaseViewController {
}
}
//3
bottomView
.
snp
.
makeConstraints
{
make
in
bottomView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
bottom
.
equalToSuperview
()
make
.
left
.
right
.
bottom
.
equalToSuperview
()
make
.
height
.
equalTo
(
YHActivityDetailBottomView
.
viewH
)
make
.
height
.
equalTo
(
YHActivityDetailBottomView
.
viewH
)
}
}
bottomView
.
block
=
{
tag
in
bottomView
.
block
=
{
tag
in
YHApplyActivityAlert
.
showApplyActivityAlertView
{
(
tag
,
name
,
number
,
phone
)
in
YHApplyActivityAlert
.
showApplyActivityAlertView
{
(
tag
,
name
,
number
,
phone
)
in
if
tag
{
if
tag
{
printLog
(
tag
)
printLog
(
tag
)
printLog
(
name
)
printLog
(
name
)
printLog
(
number
)
printLog
(
number
)
printLog
(
phone
)
printLog
(
phone
)
return
// let vc = YHApplyActivityResultViewController()
let
vc
=
YHApplyActivityResultViewController
()
// self.navigationController?.pushViewController(vc)
self
.
navigationController
?
.
pushViewController
(
vc
)
}
}
}
}
}
}
//2.
//4.
// addTopView()
topView
.
snp
.
makeConstraints
{
make
in
// topView.backgroundColor = .red
make
.
top
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
114
)
}
}
}
}
func
loadData
()
{
if
!
activityId
.
isEmpty
{
extension
YHActivityDetailViewController
{
viewModel
.
getActivityDetailData
(
activityID
:
activityId
)
{
success
,
error
in
func
addTopView
()
{
if
success
{
//tableView
topView
.
frame
=
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
114
)
self
.
tableView
.
reloadData
()
view
.
addSubview
(
topView
)
//bottomView
let
gradientLayer
=
CAGradientLayer
()
self
.
bottomView
.
dataModel
=
self
.
viewModel
.
activityDetailModel
gradientLayer
.
frame
=
topView
.
bounds
}
else
{
let
msg
=
error
?
.
errorMsg
??
"获取数据出错"
// 定义渐变颜色,这里使用了两种颜色
YHHUD
.
flash
(
message
:
msg
)
let
colorTop
=
UIColor
.
red
//UIColor(hex: 0x000000, alpha: 1)
self
.
navigationController
?
.
popViewController
()
let
colorBottom
=
UIColor
.
blue
//UIColor(hex: 0x000000, alpha: 0)
}
}
// 设置颜色数组
}
else
{
gradientLayer
.
colors
=
[
colorTop
,
colorBottom
]
YHHUD
.
flash
(
message
:
"参数错误"
)
navigationController
?
.
popViewController
()
// 设置渐变方向,从上到下
}
gradientLayer
.
startPoint
=
CGPoint
(
x
:
0.5
,
y
:
0.0
)
gradientLayer
.
endPoint
=
CGPoint
(
x
:
0.5
,
y
:
1.0
)
// 添加渐变层到当前视图的layer
topView
.
layer
.
insertSublayer
(
gradientLayer
,
at
:
0
)
}
}
}
}
...
@@ -133,34 +132,11 @@ extension YHActivityDetailViewController: UITableViewDelegate, UITableViewDataSo
...
@@ -133,34 +132,11 @@ extension YHActivityDetailViewController: UITableViewDelegate, UITableViewDataSo
func
tableView
(
_
tableView
:
UITableView
,
cellForRowAt
indexPath
:
IndexPath
)
->
UITableViewCell
{
func
tableView
(
_
tableView
:
UITableView
,
cellForRowAt
indexPath
:
IndexPath
)
->
UITableViewCell
{
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHActivityDetailCell
.
cellReuseIdentifier
,
for
:
indexPath
)
as!
YHActivityDetailCell
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
YHActivityDetailCell
.
cellReuseIdentifier
,
for
:
indexPath
)
as!
YHActivityDetailCell
cell
.
sessionIndex
=
indexPath
.
section
cell
.
dataModel
=
viewModel
.
activityDetailModel
return
cell
return
cell
}
}
func
tableView
(
_
tableView
:
UITableView
,
heightForRowAt
indexPath
:
IndexPath
)
->
CGFloat
{
func
tableView
(
_
tableView
:
UITableView
,
heightForRowAt
indexPath
:
IndexPath
)
->
CGFloat
{
return
UITableView
.
automaticDimension
return
UITableView
.
automaticDimension
}
}
// func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
//
// return 0.001
// }
//
// func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
//
// let view = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 0.001))
// view.backgroundColor = .clear
// return view
// }
//
// func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
// let view = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth-16.0*2, height: 0.001))
// view.backgroundColor = .clear
// return view
// }
//
// func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
// return 0.001
// }
}
}
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/C/YHActivityListViewController.swift
View file @
0c18a739
...
@@ -195,11 +195,13 @@ extension YHActivityListViewController: UITableViewDelegate, UITableViewDataSour
...
@@ -195,11 +195,13 @@ extension YHActivityListViewController: UITableViewDelegate, UITableViewDataSour
}
}
func
tableView
(
_
tableView
:
UITableView
,
didSelectRowAt
indexPath
:
IndexPath
)
{
func
tableView
(
_
tableView
:
UITableView
,
didSelectRowAt
indexPath
:
IndexPath
)
{
if
indexPath
.
section
<
viewModel
.
arrActivityListData
.
count
{
let
model
=
viewModel
.
arrActivityListData
[
indexPath
.
section
]
let
vc
=
YHActivityDetailViewController
()
let
vc
=
YHActivityDetailViewController
()
navigationController
?
.
pushViewController
(
vc
)
vc
.
activityId
=
String
(
model
.
id
)
navigationController
?
.
pushViewController
(
vc
)
}
}
}
func
tableView
(
_
tableView
:
UITableView
,
heightForHeaderInSection
section
:
Int
)
->
CGFloat
{
func
tableView
(
_
tableView
:
UITableView
,
heightForHeaderInSection
section
:
Int
)
->
CGFloat
{
...
...
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/M/YHActivityDetailModel.swift
0 → 100644
View file @
0c18a739
//
// YHActivityDetailModel.swift
// galaxy
//
// Created by davidhuangA on 2024/6/25.
// Copyright © 2024 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHActivityDetailModel
:
YHActivityModel
{
// var cover : String = "" //活动封面
// var name : String = "" //活动标题
// var tag : Int = 0 //活动标签枚举 1:V专享
// var beginTime : String = "" //开始时间戳
// var endTime : String = "" //结束时间戳
// var place : String = "" //活动地点
// var id : Int = 0 //活动ID
// var status : String = "" //活动的状态 1:立即报名 2:已报名 3:活动结束 4:已取消报名
var
guidance
:
String
=
""
//交通引导
var
introduce
:
String
=
""
//活动介绍
var
posters
:
[
String
]
=
[]
//活动海报
var
tips
:
String
=
""
//温馨提示
var
checkId
:
String
=
""
//活动行程ID 仅当活动状态为2(已报名)时才大于0
}
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/V/YHActivityDetailBottomView.swift
View file @
0c18a739
...
@@ -11,6 +11,12 @@ import UIKit
...
@@ -11,6 +11,12 @@ import UIKit
class
YHActivityDetailBottomView
:
UIView
{
class
YHActivityDetailBottomView
:
UIView
{
static
let
viewH
:
CGFloat
=
98.0
static
let
viewH
:
CGFloat
=
98.0
var
dataModel
:
YHActivityDetailModel
?
{
didSet
{
updateUI
()
}
}
override
init
(
frame
:
CGRect
)
{
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
YHBasicInfoFillBottomView
.
viewH
))
super
.
init
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
YHBasicInfoFillBottomView
.
viewH
))
setupUI
()
setupUI
()
...
@@ -21,12 +27,9 @@ class YHActivityDetailBottomView: UIView {
...
@@ -21,12 +27,9 @@ class YHActivityDetailBottomView: UIView {
}
}
typealias
Block
=
(
Int
)
->
()
typealias
Block
=
(
Int
)
->
()
var
block
:
Block
?
var
block
:
Block
?
var
saveButton
:
UIButton
!
var
saveButton
:
UIButton
!
var
nextButton
:
UIButton
!
private
lazy
var
bottomLine
:
UIView
=
{
private
lazy
var
bottomLine
:
UIView
=
{
let
view
=
UIView
()
let
view
=
UIView
()
...
@@ -37,6 +40,20 @@ class YHActivityDetailBottomView: UIView {
...
@@ -37,6 +40,20 @@ class YHActivityDetailBottomView: UIView {
}
}
private
extension
YHActivityDetailBottomView
{
private
extension
YHActivityDetailBottomView
{
func
updateUI
()
{
guard
let
model
=
dataModel
else
{
return
}
if
let
status
=
Int
(
model
.
status
)
{
isHidden
=
false
saveButton
.
setTitle
(
YHActivityStatus
.
init
(
rawValue
:
status
)?
.
activityTitle
,
for
:
.
normal
)
}
else
{
isHidden
=
true
}
}
func
setupUI
()
{
func
setupUI
()
{
backgroundColor
=
.
white
backgroundColor
=
.
white
...
...
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/V/YHActivityDetailCell.swift
View file @
0c18a739
...
@@ -12,11 +12,9 @@ class YHActivityDetailCell: UITableViewCell {
...
@@ -12,11 +12,9 @@ class YHActivityDetailCell: UITableViewCell {
static
let
cellReuseIdentifier
=
"YHActivityDetailCell"
static
let
cellReuseIdentifier
=
"YHActivityDetailCell"
var
sessionIndex
:
Int
=
0
{
var
dataModel
:
YHActivityDetailModel
?
{
didSet
{
didSet
{
// let tmp = sessionIndex % 3
updateUI
()
// let name = "activity_cell_bkg_" + String(tmp)
// bkgImgV.image = UIImage(named: name)
}
}
}
}
...
@@ -34,7 +32,6 @@ class YHActivityDetailCell: UITableViewCell {
...
@@ -34,7 +32,6 @@ class YHActivityDetailCell: UITableViewCell {
lazy
var
topImgV
:
UIImageView
=
{
lazy
var
topImgV
:
UIImageView
=
{
let
view
=
UIImageView
()
let
view
=
UIImageView
()
view
.
image
=
UIImage
(
named
:
"global_default_image"
)
view
.
image
=
UIImage
(
named
:
"global_default_image"
)
// view.image = UIImage(named: "global_default_image")
view
.
contentMode
=
.
scaleAspectFill
view
.
contentMode
=
.
scaleAspectFill
view
.
clipsToBounds
=
true
view
.
clipsToBounds
=
true
return
view
return
view
...
@@ -59,15 +56,117 @@ class YHActivityDetailCell: UITableViewCell {
...
@@ -59,15 +56,117 @@ class YHActivityDetailCell: UITableViewCell {
let
view
=
YHActivityTipsItemView
()
let
view
=
YHActivityTipsItemView
()
return
view
return
view
}()
}()
override
func
layoutSubviews
()
{
super
.
layoutSubviews
()
topImgV
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
KScreenWidth
)
}
acitivityTitle
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalTo
(
topImgV
.
snp
.
bottom
)
.
offset
(
24
)
make
.
left
.
equalTo
(
20
)
make
.
right
.
equalTo
(
-
20
)
}
var
lastView
:
UIView
=
acitivityTitle
if
acitivityDetail
.
isHidden
{
if
acitivityTips
.
isHidden
{
acitivityTitle
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalTo
(
topImgV
.
snp
.
bottom
)
.
offset
(
24
)
make
.
left
.
equalTo
(
20
)
make
.
right
.
equalTo
(
-
20
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
42
)
}
}
else
{
acitivityTips
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalTo
(
lastView
.
snp
.
bottom
)
.
offset
(
24
)
make
.
left
.
equalTo
(
20
)
make
.
right
.
equalTo
(
-
20
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
42
)
}
}
}
else
{
if
acitivityTips
.
isHidden
{
acitivityDetail
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalTo
(
lastView
.
snp
.
bottom
)
.
offset
(
24
)
make
.
left
.
equalTo
(
20
)
make
.
right
.
equalTo
(
-
20
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
42
)
}
}
else
{
acitivityDetail
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalTo
(
lastView
.
snp
.
bottom
)
.
offset
(
24
)
make
.
left
.
equalTo
(
20
)
make
.
right
.
equalTo
(
-
20
)
}
lastView
=
acitivityDetail
acitivityTips
.
snp
.
remakeConstraints
{
make
in
make
.
top
.
equalTo
(
lastView
.
snp
.
bottom
)
.
offset
(
24
)
make
.
left
.
equalTo
(
20
)
make
.
right
.
equalTo
(
-
20
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
42
)
}
}
}
}
}
}
extension
YHActivityDetailCell
{
extension
YHActivityDetailCell
{
func
updateUI
()
{
guard
let
model
=
dataModel
else
{
return
}
if
let
url
=
URL
(
string
:
model
.
cover
)
{
topImgV
.
kf
.
setImage
(
with
:
url
,
placeholder
:
UIImage
(
named
:
"global_default_image"
))
}
else
{
topImgV
.
image
=
UIImage
(
named
:
"global_default_image"
)
}
acitivityTitle
.
dataModel
=
model
//acitivityDetail
if
model
.
introduce
.
isEmpty
&&
model
.
posters
.
count
<
1
{
//隐藏
acitivityDetail
.
isHidden
=
true
}
else
{
//展示
acitivityDetail
.
isHidden
=
false
acitivityDetail
.
dataModel
=
model
}
//acitivityTips
if
model
.
tips
.
isEmpty
{
acitivityTips
.
isHidden
=
true
}
else
{
acitivityTips
.
isHidden
=
false
acitivityTips
.
dataModel
=
model
}
layoutIfNeeded
()
}
func
setupUI
()
{
func
setupUI
()
{
backgroundColor
=
.
clear
backgroundColor
=
.
clear
contentView
.
backgroundColor
=
.
white
//for test hjl
contentView
.
backgroundColor
=
.
pageBkgColor
selectionStyle
=
.
none
selectionStyle
=
.
none
contentView
.
addSubview
(
topImgV
)
contentView
.
addSubview
(
topImgV
)
contentView
.
addSubview
(
acitivityTitle
)
contentView
.
addSubview
(
acitivityTitle
)
contentView
.
addSubview
(
acitivityDetail
)
contentView
.
addSubview
(
acitivityDetail
)
...
@@ -101,6 +200,5 @@ extension YHActivityDetailCell {
...
@@ -101,6 +200,5 @@ extension YHActivityDetailCell {
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
42
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
42
)
}
}
acitivityTips
.
layoutIfNeeded
()
}
}
}
}
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/V/YHActivityDetailItemView.swift
View file @
0c18a739
...
@@ -20,6 +20,13 @@ class YHActivityDetailItemView: UIView {
...
@@ -20,6 +20,13 @@ class YHActivityDetailItemView: UIView {
}
}
var
dataModel
:
YHActivityDetailModel
?
{
didSet
{
updateUI
()
}
}
private
lazy
var
bottomLine
:
UIView
=
{
private
lazy
var
bottomLine
:
UIView
=
{
let
view
=
UIView
()
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
.
separatorColor
view
.
backgroundColor
=
UIColor
.
separatorColor
...
@@ -44,6 +51,7 @@ class YHActivityDetailItemView: UIView {
...
@@ -44,6 +51,7 @@ class YHActivityDetailItemView: UIView {
nameLabel
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
14
)
nameLabel
.
font
=
UIFont
.
PFSC_R
(
ofSize
:
14
)
nameLabel
.
text
=
"1. 从学渣到哈佛,小儿子经历的挫折和迷茫
\r\n
2. 诈骗到财富自由,大儿子的“啃老”生活
\r\n
3. 小女儿15岁写两本书,又获艺术类冠亚军
\r\n
4. 养育五部曲,精心散养、快乐养育"
nameLabel
.
text
=
"1. 从学渣到哈佛,小儿子经历的挫折和迷茫
\r\n
2. 诈骗到财富自由,大儿子的“啃老”生活
\r\n
3. 小女儿15岁写两本书,又获艺术类冠亚军
\r\n
4. 养育五部曲,精心散养、快乐养育"
nameLabel
.
numberOfLines
=
0
nameLabel
.
numberOfLines
=
0
nameLabel
.
isHidden
=
true
return
nameLabel
return
nameLabel
}()
}()
}
}
...
@@ -51,46 +59,99 @@ class YHActivityDetailItemView: UIView {
...
@@ -51,46 +59,99 @@ class YHActivityDetailItemView: UIView {
extension
YHActivityDetailItemView
{
extension
YHActivityDetailItemView
{
func
setupUI
()
{
func
updateUI
()
{
addSubview
(
bottomLine
)
guard
let
model
=
dataModel
else
{
addSubview
(
nameLabel
)
return
addSubview
(
describeLable
)
bottomLine
.
snp
.
makeConstraints
{
make
in
make
.
top
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
1
)
}
}
nameLabel
.
snp
.
makeConstraints
{
make
in
nameLabel
.
snp
.
remakeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
bottomLine
.
snp
.
bottom
)
.
offset
(
24
)
make
.
top
.
equalTo
(
bottomLine
.
snp
.
bottom
)
.
offset
(
24
)
}
}
var
lastView
:
UIView
=
nameLabel
describeLable
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
nameLabel
.
snp
.
bottom
)
.
offset
(
24
)
if
model
.
introduce
.
isEmpty
{
}
else
{
describeLable
.
isHidden
=
false
if
model
.
posters
.
count
>
0
{
describeLable
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
nameLabel
.
snp
.
bottom
)
.
offset
(
24
)
}
}
else
{
describeLable
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
nameLabel
.
snp
.
bottom
)
.
offset
(
24
)
make
.
bottom
.
equalToSuperview
()
}
}
lastView
=
describeLable
}
}
let
imageV
:
UIImageView
=
UIImageView
()
if
model
.
posters
.
count
>
0
{
// imageV.backgroundColor = .red //for test hjl
for
(
index
,
value
)
in
model
.
posters
.
enumerated
()
{
imageV
.
image
=
UIImage
(
named
:
"global_default_image"
)
print
(
"Index:
\(
index
)
, Value:
\(
value
)
"
)
addSubview
(
imageV
)
imageV
.
snp
.
makeConstraints
{
make
in
let
imageV
:
UIImageView
=
UIImageView
()
make
.
left
.
right
.
equalToSuperview
()
if
let
url
=
URL
(
string
:
value
)
{
make
.
top
.
equalTo
(
describeLable
.
snp
.
bottom
)
.
offset
(
24
)
imageV
.
kf
.
setImage
(
with
:
url
,
placeholder
:
UIImage
(
named
:
"global_default_image"
))
make
.
height
.
equalTo
(
376
)
}
addSubview
(
imageV
)
if
model
.
posters
.
count
-
1
==
index
{
if
index
==
0
{
imageV
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
lastView
.
snp
.
bottom
)
.
offset
(
24
)
make
.
height
.
equalTo
(
376
)
make
.
bottom
.
equalToSuperview
()
}
}
else
{
imageV
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
lastView
.
snp
.
bottom
)
.
offset
(
20
)
make
.
height
.
equalTo
(
376
)
make
.
bottom
.
equalToSuperview
()
}
}
}
else
{
imageV
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
lastView
.
snp
.
bottom
)
.
offset
(
20
)
make
.
height
.
equalTo
(
376
)
}
}
lastView
=
imageV
}
}
}
}
func
setupUI
()
{
addSubview
(
bottomLine
)
addSubview
(
nameLabel
)
addSubview
(
describeLable
)
bottomLine
.
snp
.
makeConstraints
{
make
in
make
.
top
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
1
)
}
let
imageV2
:
UIImageView
=
UIImageView
()
nameLabel
.
snp
.
makeConstraints
{
make
in
// imageV2.backgroundColor = .purple //for test hjl
imageV2
.
image
=
UIImage
(
named
:
"global_default_image"
)
addSubview
(
imageV2
)
imageV2
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
imageV
.
snp
.
bottom
)
.
offset
(
20
)
make
.
top
.
equalTo
(
bottomLine
.
snp
.
bottom
)
.
offset
(
24
)
make
.
height
.
equalTo
(
376
)
make
.
bottom
.
equalToSuperview
()
make
.
bottom
.
equalToSuperview
()
}
}
...
...
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/V/YHActivityTipsItemView.swift
View file @
0c18a739
...
@@ -22,6 +22,14 @@ class YHActivityTipsItemView: UIView {
...
@@ -22,6 +22,14 @@ class YHActivityTipsItemView: UIView {
var
showLineFlag
:
Bool
=
true
var
showLineFlag
:
Bool
=
true
var
dataModel
:
YHActivityDetailModel
?
{
didSet
{
updateUI
()
}
}
private
lazy
var
bottomLine
:
UIView
=
{
private
lazy
var
bottomLine
:
UIView
=
{
let
view
=
UIView
()
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
.
separatorColor
view
.
backgroundColor
=
UIColor
.
separatorColor
...
@@ -84,10 +92,18 @@ class YHActivityTipsItemView: UIView {
...
@@ -84,10 +92,18 @@ class YHActivityTipsItemView: UIView {
extension
YHActivityTipsItemView
{
extension
YHActivityTipsItemView
{
func
updateUI
()
{
guard
let
model
=
dataModel
else
{
return
}
describeLable
.
text
=
model
.
tips
layoutIfNeeded
()
}
func
setupUI
()
{
func
setupUI
()
{
addSubview
(
bottomLine
)
addSubview
(
bottomLine
)
addSubview
(
nameLabel
)
addSubview
(
nameLabel
)
addSubview
(
describeLable
)
addSubview
(
describeLable
)
layoutIfNeeded
()
}
}
}
}
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/V/YHActivityTitleItemView.swift
View file @
0c18a739
...
@@ -19,17 +19,11 @@ class YHActivityTitleItemView: UIView {
...
@@ -19,17 +19,11 @@ class YHActivityTitleItemView: UIView {
setupUI
()
setupUI
()
}
}
var
dataModel
:
YHActivityDetailModel
?
{
didSet
{
// lazy var nameLabel:UILabel = {
updateUI
()
// let nameLabel = UILabel()
}
// nameLabel.textColor = UIColor.mainTextColor
}
// nameLabel.textAlignment = .left
// nameLabel.font = UIFont.PFSC_B(ofSize:24)
// nameLabel.text = "哈佛爸爸线下教育沙龙哈佛爸爸线下教育沙龙"
// return nameLabel
// }()
private
lazy
var
nameTextView
:
UITextView
=
{
private
lazy
var
nameTextView
:
UITextView
=
{
let
lable0
=
UITextView
()
let
lable0
=
UITextView
()
...
@@ -39,6 +33,7 @@ class YHActivityTitleItemView: UIView {
...
@@ -39,6 +33,7 @@ class YHActivityTitleItemView: UIView {
lable0
.
isScrollEnabled
=
false
lable0
.
isScrollEnabled
=
false
lable0
.
isEditable
=
false
lable0
.
isEditable
=
false
lable0
.
isSelectable
=
false
lable0
.
isSelectable
=
false
lable0
.
backgroundColor
=
.
clear
return
lable0
return
lable0
}()
}()
...
@@ -94,9 +89,29 @@ class YHActivityTitleItemView: UIView {
...
@@ -94,9 +89,29 @@ class YHActivityTitleItemView: UIView {
extension
YHActivityTitleItemView
{
extension
YHActivityTitleItemView
{
func
updateUI
()
{
guard
let
model
=
dataModel
else
{
return
}
nameTextView
.
text
=
model
.
name
if
model
.
tag
==
1
{
nameTextView
.
attributed
.
text
=
"""
\(
model
.
name
+
" "
,
.
foreground
(
UIColor
.
mainTextColor
),
.
font
(
UIFont
.
PFSC_B
(
ofSize
:
24
))
)\(
.
image
(
UIImage
(
named
:
"activity_vip_icon2"
)
!
,
.
custom
(
.
offset
(
CGPoint
(
x
:
0
,
y
:
-
7
)),
size
:
.
init
(
width
:
44
,
height
:
34
)))
)
"""
}
else
{
nameTextView
.
attributed
.
text
=
"""
\(
model
.
name
,
.
foreground
(
UIColor
.
mainTextColor
),
.
font
(
UIFont
.
PFSC_B
(
ofSize
:
24
))
)
"""
}
timeLable
.
text
=
String
(
model
.
beginTime
)
addressLable
.
text
=
model
.
place
navAddressLable
.
text
=
model
.
guidance
}
func
setupUI
()
{
func
setupUI
()
{
// addSubview(nameLabel)
addSubview
(
nameTextView
)
addSubview
(
nameTextView
)
addSubview
(
timeStaticLable
)
addSubview
(
timeStaticLable
)
addSubview
(
timeLable
)
addSubview
(
timeLable
)
...
...
galaxy/galaxy/Classes/Modules/Community(社区)/Activity(活动)/VM/YHActivityViewModel.swift
View file @
0c18a739
...
@@ -22,14 +22,48 @@ class YHActivityViewModel: YHBaseViewModel {
...
@@ -22,14 +22,48 @@ class YHActivityViewModel: YHBaseViewModel {
var
arrActivityListData
:
[
YHActivityModel
]
=
[]
var
arrActivityListData
:
[
YHActivityModel
]
=
[]
//2.活动详情
var
activityDetailModel
:
YHActivityDetailModel
?
//2.
//3.
}
}
extension
YHActivityViewModel
{
extension
YHActivityViewModel
{
/*
/*
*活动详情
*/
func
getActivityDetailData
(
activityID
:
String
,
callBackBlock
:
@escaping
(
_
success
:
Bool
,
_
error
:
YHErrorModel
?)
->
())
{
// var params: [String : Any] = ["id": activityID]
let
strUrl
=
YHBaseUrlManager
.
shared
.
curURL
()
+
YHAllApiName
.
Activity
.
detailApi
+
"/"
+
activityID
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
=
YHActivityDetailModel
.
deserialize
(
from
:
dic
as?
Dictionary
)
else
{
self
.
activityDetailModel
=
nil
callBackBlock
(
false
,
nil
)
return
}
self
.
activityDetailModel
=
result
callBackBlock
(
true
,
nil
)
}
else
{
self
.
activityDetailModel
=
nil
let
error
:
YHErrorModel
=
YHErrorModel
(
errorCode
:
Int32
(
json
.
code
),
errorMsg
:
json
.
msg
)
callBackBlock
(
false
,
error
)
}
}
failBlock
:
{
err
in
self
.
activityDetailModel
=
nil
callBackBlock
(
false
,
err
)
}
}
/*
*活动列表
firstFlag true - 首次 false - 更多
firstFlag true - 首次 false - 更多
*/
*/
func
getActivityList
(
firstFlag
:
Bool
,
callBackBlock
:
@escaping
(
_
success
:
Bool
,
_
error
:
YHErrorModel
?)
->
())
{
func
getActivityList
(
firstFlag
:
Bool
,
callBackBlock
:
@escaping
(
_
success
:
Bool
,
_
error
:
YHErrorModel
?)
->
())
{
...
...
galaxy/galaxy/Classes/Tools/NetWork/YHAllApiName.swift
View file @
0c18a739
...
@@ -13,6 +13,11 @@ class YHAllApiName {
...
@@ -13,6 +13,11 @@ class YHAllApiName {
struct
Activity
{
struct
Activity
{
//活动列表
//活动列表
static
let
listApi
=
"super-app/activity/list"
static
let
listApi
=
"super-app/activity/list"
//活动详情
static
let
detailApi
=
"super-app/activity/detail"
}
}
...
...
galaxy/galaxy/Res/Assets.xcassets/Activity/activity_detail_top_bkg.imageset/Contents.json
0 → 100644
View file @
0c18a739
{
"images"
:
[
{
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"Rectangle 346241363@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"Rectangle 346241363@3x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
galaxy/galaxy/Res/Assets.xcassets/Activity/activity_detail_top_bkg.imageset/Rectangle 346241363@2x.png
0 → 100644
View file @
0c18a739
45.9 KB
galaxy/galaxy/Res/Assets.xcassets/Activity/activity_detail_top_bkg.imageset/Rectangle 346241363@3x.png
0 → 100644
View file @
0c18a739
71.1 KB
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment