Commit 21333ce7 authored by David黄金龙's avatar David黄金龙

活动细节联调

parent 2fd39f3a
...@@ -51,7 +51,12 @@ class YHActivityDetailViewController: YHBaseViewController { ...@@ -51,7 +51,12 @@ class YHActivityDetailViewController: YHBaseViewController {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
setupUI() setupUI()
// loadData()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
loadData() loadData()
} }
} }
...@@ -69,6 +74,9 @@ extension YHActivityDetailViewController { ...@@ -69,6 +74,9 @@ extension YHActivityDetailViewController {
showApplyUI() showApplyUI()
case .applied: case .applied:
printLog("已报名") printLog("已报名")
let vc = YHActivityTravelViewController()
vc.travelId = viewModel.activityDetailModel?.checkId ?? ""
navigationController?.pushViewController(vc)
case .canceled: case .canceled:
// printLog("已取消报名") // printLog("已取消报名")
showApplyUI() showApplyUI()
...@@ -172,6 +180,7 @@ extension YHActivityDetailViewController { ...@@ -172,6 +180,7 @@ extension YHActivityDetailViewController {
self.loadData() self.loadData()
DispatchQueue.main.async { DispatchQueue.main.async {
let vc = YHApplyActivityResultViewController() let vc = YHApplyActivityResultViewController()
vc.isSuccessFlag = true
vc.activityTravelId = String(self.viewModel.activityTravelModel?.id ?? 0) vc.activityTravelId = String(self.viewModel.activityTravelModel?.id ?? 0)
self.navigationController?.pushViewController(vc) self.navigationController?.pushViewController(vc)
} }
......
...@@ -21,7 +21,7 @@ enum YHActivityStatus: Int { ...@@ -21,7 +21,7 @@ enum YHActivityStatus: Int {
case canceled = 4 // 已取消报名 case canceled = 4 // 已取消报名
var activityTitle : String { var titleForList : String {
switch self { switch self {
case .notApply: case .notApply:
return "立即报名" return "立即报名"
...@@ -30,7 +30,39 @@ enum YHActivityStatus: Int { ...@@ -30,7 +30,39 @@ enum YHActivityStatus: Int {
case .end: case .end:
return "活动结束" return "活动结束"
case .canceled: case .canceled:
return "已取消报名" return "立即报名"
default:
return ""
}
}
var titleForMyApplyList : String {
switch self {
case .notApply:
return "立即报名"
case .applied:
return "已报名"
case .end:
return "活动结束"
case .canceled:
return "已取消"
default:
return ""
}
}
var titleForDetail : String {
switch self {
case .notApply:
return "立即报名"
case .applied:
return "查看行程单"
case .end:
return "活动结束"
case .canceled:
return "立即报名"
default: default:
return "" return ""
} }
...@@ -126,7 +158,11 @@ class YHActivityListViewController: YHBaseViewController { ...@@ -126,7 +158,11 @@ class YHActivityListViewController: YHBaseViewController {
} }
emptyDataTipsView.isHidden = viewModel.arrActivityListData.count > 0 ? true : false emptyDataTipsView.isHidden = viewModel.arrActivityListData.count > 0 ? true : false
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
loadFirstData() loadFirstData()
} }
} }
......
...@@ -63,6 +63,12 @@ class YHActivityTravelViewController: YHBaseViewController { ...@@ -63,6 +63,12 @@ class YHActivityTravelViewController: YHBaseViewController {
setupUI() setupUI()
loadData() loadData()
} }
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
loadData()
}
} }
extension YHActivityTravelViewController { extension YHActivityTravelViewController {
...@@ -108,6 +114,73 @@ extension YHActivityTravelViewController { ...@@ -108,6 +114,73 @@ extension YHActivityTravelViewController {
navigationController?.popViewController() navigationController?.popViewController()
} }
} }
func cancelActivityApply() {
viewModel.cancelActivityTravel(travelId:travelId) { [weak self] (success, error) in
if success {
YHHUD.flash(message: "已取消报名")
self?.loadData()
} else {
let msg = error?.errorMsg ?? "取消失败"
YHHUD.flash(message: msg)
}
}
}
func clickBottomButton() {
if self.viewModel.activityTravelModel?.status.int == 2 {
//取消
YHCommonAlertView.show("", "是否取消报名?", "是", "否",fullGuestureEnable: false) {
self.cancelActivityApply()
} callBack: {
}
} else if self.viewModel.activityTravelModel?.status.int == 4 {
//报名
self.showApplyUI()
}
}
func showApplyUI() {
YHApplyActivityAlert.showApplyActivityAlertView { (tag,name,number,phone) in
if tag {
printLog(tag)
printLog(name)
printLog(number)
printLog(phone)
if tag {
if let model = self.viewModel.activityTravelModel,model.id > 0 {
let param = ["id" : model.id,
"name":name,
"mobile":phone,
"number":number]
self.applyActivity(param: param)
}
}
}
}
}
func applyActivity(param : [String : Any]) {
viewModel.applyActivity(param: param) { success, error in
if success {
YHHUD.flash(message: "报名成功")
// self.loadData()
// DispatchQueue.main.async {
// let vc = YHApplyActivityResultViewController()
// vc.activityTravelId = String(self.viewModel.activityTravelModel?.id ?? 0)
// self.navigationController?.pushViewController(vc)
// }
self.navigationController?.popToRootViewController(animated: true)
} else {
let msg = error?.errorMsg ?? "报名失败,请重试"
YHHUD.flash(message: msg)
}
}
}
} }
extension YHActivityTravelViewController: UITableViewDelegate, UITableViewDataSource { extension YHActivityTravelViewController: UITableViewDelegate, UITableViewDataSource {
...@@ -122,6 +195,9 @@ extension YHActivityTravelViewController: UITableViewDelegate, UITableViewDataSo ...@@ -122,6 +195,9 @@ extension YHActivityTravelViewController: UITableViewDelegate, UITableViewDataSo
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: YHActivityTravelCell.cellReuseIdentifier, for: indexPath) as! YHActivityTravelCell let cell = tableView.dequeueReusableCell(withIdentifier: YHActivityTravelCell.cellReuseIdentifier, for: indexPath) as! YHActivityTravelCell
cell.dataModel = viewModel.activityTravelModel cell.dataModel = viewModel.activityTravelModel
cell.block = {[weak self] in
self?.clickBottomButton()
}
return cell return cell
} }
......
...@@ -48,7 +48,7 @@ private extension YHActivityDetailBottomView { ...@@ -48,7 +48,7 @@ private extension YHActivityDetailBottomView {
if let status = Int(model.status) { if let status = Int(model.status) {
isHidden = false isHidden = false
saveButton.setTitle(YHActivityStatus.init(rawValue: status)?.activityTitle, for: .normal) saveButton.setTitle(YHActivityStatus.init(rawValue: status)?.titleForDetail, for: .normal)
saveButton.backgroundColor = YHActivityStatus.init(rawValue: status)?.activityColor saveButton.backgroundColor = YHActivityStatus.init(rawValue: status)?.activityColor
} else { } else {
isHidden = true isHidden = true
......
...@@ -134,15 +134,12 @@ extension YHActivityListCell { ...@@ -134,15 +134,12 @@ extension YHActivityListCell {
// //
detailLabel.text = model.place detailLabel.text = model.place
if let status = Int(model.status) { if let status = Int(model.status) {
statusLabel.text = YHActivityStatus.init(rawValue: status)?.titleForList
statusLabel.text = YHActivityStatus.init(rawValue: status)?.activityTitle
statusLabel.textColor = YHActivityStatus.init(rawValue: status)?.activityColor statusLabel.textColor = YHActivityStatus.init(rawValue: status)?.activityColor
} else { } else {
statusLabel.text = "" statusLabel.text = ""
} }
} }
func setupUI() { func setupUI() {
......
...@@ -20,7 +20,9 @@ class YHActivityTravelCell: UITableViewCell { ...@@ -20,7 +20,9 @@ class YHActivityTravelCell: UITableViewCell {
} }
} }
typealias Block = () -> ()
var block: Block?
required init?(coder: NSCoder) { required init?(coder: NSCoder) {
super.init(coder: coder) super.init(coder: coder)
...@@ -84,43 +86,44 @@ extension YHActivityTravelCell { ...@@ -84,43 +86,44 @@ extension YHActivityTravelCell {
return return
} }
if model.status.int == 2 {
cancelButton.isHidden = false
cancelButton.setTitle("取消报名", for: .normal)
cancelButton.setTitle("取消报名", for: .highlighted)
cancelButton.setTitleColor(UIColor.mainTextColor, for: .normal)
cancelButton.setTitleColor(UIColor.mainTextColor, for: .highlighted)
cancelButton.backgroundColor = .white
cancelButton.layer.borderWidth = 1
cancelButton.layer.borderColor = UIColor.mainTextColor50.cgColor
} else if model.status.int == 4 {
cancelButton.isHidden = false
cancelButton.setTitle("重新报名", for: .normal)
cancelButton.setTitle("重新报名", for: .highlighted)
cancelButton.setTitleColor(UIColor.white, for: .normal)
cancelButton.setTitleColor(UIColor.white, for: .highlighted)
cancelButton.backgroundColor = .brandMainColor
cancelButton.layer.borderWidth = 0
cancelButton.layer.borderColor = UIColor.clear.cgColor
} else {
cancelButton.isHidden = true
}
// 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()
} }
@objc func clickCancelBtn() { @objc func clickCancelBtn() {
YHCommonAlertView.show("", "是否取消报名?", "是", "否",fullGuestureEnable: false) { self.block?()
self.isApplyFlag = false
self.updateRightBtnUI()
} callBack: {
}
} }
func updateRightBtnUI() { func updateRightBtnUI() {
......
...@@ -34,6 +34,37 @@ class YHActivityViewModel: YHBaseViewModel { ...@@ -34,6 +34,37 @@ class YHActivityViewModel: YHBaseViewModel {
extension YHActivityViewModel { extension YHActivityViewModel {
/*
*取消活动报名
*/
func cancelActivityTravel(travelId : String ,callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.Activity.cancelApi
let param = ["id":travelId]
let _ = YHNetRequest.putRequest(url: strUrl,params: param) { [weak self] json, code in
guard self != nil else { return }
//1. json字符串 转 对象
if json.code == 200 {
// let dic = json.data
// guard let result = YHActivityTravelModel.deserialize(from: dic as? Dictionary) else {
// self.activityTravelModel = nil
// callBackBlock(false,nil)
// return
// }
// self.activityTravelModel = result
callBackBlock(true, nil)
} else {
// self.activityTravelModel = nil
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBackBlock(false, error)
}
} failBlock: { err in
// self.activityTravelModel = nil
callBackBlock(false,err)
}
}
/* /*
*活动行程单 *活动行程单
*/ */
......
...@@ -20,9 +20,11 @@ class YHAllApiName { ...@@ -20,9 +20,11 @@ class YHAllApiName {
//活动报名 //活动报名
static let applyApi = "super-app/activity/join" static let applyApi = "super-app/activity/join"
//活动行程单 //活动行程单
static let travelApi = "super-app/activity/check-list" static let travelApi = "super-app/activity/check-list"
//取消活动报名
static let cancelApi = "super-app/activity/cancel"
} }
......
...@@ -392,6 +392,14 @@ extension YHNetRequest { ...@@ -392,6 +392,14 @@ extension YHNetRequest {
return YHNetRequest().businessCode(businessCode).url(url).requestType(.post).params(params).success(successBlock).failed(failBlock).startRequest() return YHNetRequest().businessCode(businessCode).url(url).requestType(.post).params(params).success(successBlock).failed(failBlock).startRequest()
} }
class func putRequest(url:String, params:[String:Any] = [:], _ businessCode: String = "4001001", successBlock: SuccessResultType!, failBlock: FailureHandlerType!) -> Request? {
printLog("\n发起请求的URL是===> url = \(url)")
printLog("\n发起请求的参数是===> url = \(params)")
return YHNetRequest().businessCode(businessCode).url(url).requestType(.put).params(params).success(successBlock).failed(failBlock).startRequest()
}
class func uplaodRequest(url:String, headers:HTTPHeaders, image: UIImage, _ businessCode: String = "4001001", successBlock: SuccessResultType!, failBlock: FailureHandlerType!) -> Request? { class func uplaodRequest(url:String, headers:HTTPHeaders, image: UIImage, _ businessCode: String = "4001001", successBlock: SuccessResultType!, failBlock: FailureHandlerType!) -> Request? {
printLog("\n发起请求的URL是===> url = \(url)") printLog("\n发起请求的URL是===> url = \(url)")
return YHNetRequest().businessCode(businessCode).url(url).success(successBlock).failed(failBlock).uploadRequest(headers, image) return YHNetRequest().businessCode(businessCode).url(url).success(successBlock).failed(failBlock).uploadRequest(headers, image)
......
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