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
d83d2bab
Commit
d83d2bab
authored
Jun 25, 2024
by
Steven杜宇
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '630-dev' of
http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS
into 630-dev
parents
7e30d161
e816b57d
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 @
d83d2bab
...
@@ -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 @
d83d2bab
...
@@ -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 @
d83d2bab
...
@@ -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 @
d83d2bab
//
// 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 @
d83d2bab
...
@@ -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 @
d83d2bab
...
@@ -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 @
d83d2bab
...
@@ -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 @
d83d2bab
...
@@ -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 @
d83d2bab
...
@@ -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 @
d83d2bab
...
@@ -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 @
d83d2bab
...
@@ -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 @
d83d2bab
{
"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 @
d83d2bab
45.9 KB
galaxy/galaxy/Res/Assets.xcassets/Activity/activity_detail_top_bkg.imageset/Rectangle 346241363@3x.png
0 → 100644
View file @
d83d2bab
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