Commit cc57a111 authored by Steven杜宇's avatar Steven杜宇

// 行程

parent c90615f5
...@@ -15,12 +15,15 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController { ...@@ -15,12 +15,15 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController {
var scheduleArr: [YHResignAppointGroup] = [] { var scheduleArr: [YHResignAppointGroup] = [] {
didSet { didSet {
self.tableView.reloadData() self.tableView.reloadData()
self.updateBottomBtnStatus() self.updateBottomBtnAndMotifyBtnStatus()
} }
} }
// 是否隐藏修改按钮
var isHiddenModifyBtn: Bool = false
var isTogether: Bool { var isTogether: Bool {
get { get {
// 只有一个行程安排 就是一起去递交
return scheduleArr.count <= 1 return scheduleArr.count <= 1
} }
} }
...@@ -103,7 +106,7 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController { ...@@ -103,7 +106,7 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController {
make.left.right.bottom.equalToSuperview() make.left.right.bottom.equalToSuperview()
make.height.equalTo(98) make.height.equalTo(98)
} }
self.updateBottomBtnStatus() self.updateBottomBtnAndMotifyBtnStatus()
} }
...@@ -112,21 +115,17 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController { ...@@ -112,21 +115,17 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController {
} }
// 更新底部下一步按钮点击状态 // 更新底部下一步按钮点击状态
func updateBottomBtnStatus() { func updateBottomBtnAndMotifyBtnStatus() {
// 是否所有分批都已确认在港
var isAllGroupHaveConfirmInHK = true var isAtLeatOneHaveConfirmInHK = self.isAtLeatOneHaveConfirmInHK()
for group in scheduleArr { self.nextBtn.isUserInteractionEnabled = isAtLeatOneHaveConfirmInHK
let confirmHKStatus = group.getConfirmInHKStatus() self.nextBtn.alpha = isAtLeatOneHaveConfirmInHK ? 1.0 : 0.3
if confirmHKStatus != .haveConfirmHK {
isAllGroupHaveConfirmInHK = false
}
}
self.nextBtn.isUserInteractionEnabled = isAllGroupHaveConfirmInHK // 所有分批都已确认在港 则无需修改了
self.nextBtn.alpha = isAllGroupHaveConfirmInHK ? 1.0 : 0.3 self.isHiddenModifyBtn = self.isAllHaveHaveConfirmInHK()
} }
func clickConfirmHKButton(status: YHResignConfirmHKStatus) { func clickConfirmHKButton(status: YHResignConfirmHKStatus, _ model: YHResignAppointGroup) {
if status == .waitConfirmHK { // 待确认在港 if status == .waitConfirmHK { // 待确认在港
// 展示提前到港弹窗 // 展示提前到港弹窗
let alert = YHForwardArriveHKAlertView.alertView() let alert = YHForwardArriveHKAlertView.alertView()
...@@ -141,7 +140,7 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController { ...@@ -141,7 +140,7 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController {
alert.show() alert.show()
} else if status == .canConfirmHK { // 可点击确认在港 } else if status == .canConfirmHK { // 可点击确认在港
YHHUD.flash(message: "请求提交确认在港") requestConfirmInHK(model)
} }
} }
...@@ -184,27 +183,22 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController { ...@@ -184,27 +183,22 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController {
// 以下是多人的情况 // 以下是多人的情况
// 先得到所有分批用户的集合 // 先得到所有分批用户的集合
var allAppointUsers = [YHResignAppointUser]() YHHUD.show(.progress(message: "加载中..."))
for group in scheduleArr { self.viewModel.getResignAppointUserlist(renewalId: self.renewalId) {
allAppointUsers.append(contentsOf: group.user_list) [weak self] success, error in
} YHHUD.hide()
guard let self = self else { return }
// 过滤掉id重复的数据 if !success {
var uniqueAllAppointUsers: [YHResignAppointUser] = [] let msg = error?.errorMsg ?? ""
var setIds = Set<Int>() YHHUD.flash(message: msg)
for model in allAppointUsers { return
if !setIds.contains(model.id) {
setIds.insert(model.id)
uniqueAllAppointUsers.append(model)
}
} }
let appAppointUsers = self.viewModel.appointUsers
// 组装数据
// 上一个批次中未选中的用户集合 // 上一个批次中未选中的用户集合
var lastLeftUnselectUsers: [YHResignAppointMember] = uniqueAllAppointUsers.deepCopy().map { var lastLeftUnselectUsers: [YHResignAppointMember] = appAppointUsers.deepCopy()
let m = $0.transformToMember()
m.isSelected = false
return m
}
var groupArr = [YHResignAppointTimeSettingModel]() var groupArr = [YHResignAppointTimeSettingModel]()
for (index, group) in scheduleArr.enumerated() { for (index, group) in scheduleArr.enumerated() {
...@@ -227,7 +221,7 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController { ...@@ -227,7 +221,7 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController {
// group.user_list 表示当前批已选用户组 更新已选择状态 // group.user_list 表示当前批已选用户组 更新已选择状态
for selectUser in group.user_list { for selectUser in group.user_list {
for user in users { for user in users {
if user.id == selectUser.id { if user.id == selectUser.memberId {
user.isSelected = true user.isSelected = true
break break
} }
...@@ -243,7 +237,7 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController { ...@@ -243,7 +237,7 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController {
lastLeftUnselectUsers = lastLeftUnselectUsers.filter { lastLeftUnselectUsers = lastLeftUnselectUsers.filter {
for model in group.user_list { for model in group.user_list {
if model.id == $0.id { // 该用户已经选择过 if model.memberId == $0.id { // 该用户已经选择过
return false return false
} }
} }
...@@ -257,6 +251,7 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController { ...@@ -257,6 +251,7 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController {
modifyVC.selectGroupArr = groupArr modifyVC.selectGroupArr = groupArr
self.navigationController?.pushViewController(modifyVC) self.navigationController?.pushViewController(modifyVC)
} }
}
func isAtLeatOneHaveConfirmInHK() -> Bool { // 所有行程安排中是否至少有一个已确认在港 func isAtLeatOneHaveConfirmInHK() -> Bool { // 所有行程安排中是否至少有一个已确认在港
for group in scheduleArr { for group in scheduleArr {
...@@ -267,6 +262,47 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController { ...@@ -267,6 +262,47 @@ class YHResignAppointSubmitScheduleViewController: YHBaseViewController {
} }
return false return false
} }
func isAllHaveHaveConfirmInHK() -> Bool { // 是否所有行程安排都已确认在港
var isAllHaveConfirmed = true
for group in scheduleArr {
let status = group.getConfirmInHKStatus()
if status != .haveConfirmHK {
isAllHaveConfirmed = false
}
}
return isAllHaveConfirmed
}
func requestConfirmInHK(_ model: YHResignAppointGroup) {
YHHUD.show(.progress(message: "提交中..."))
self.viewModel.submitConfirmInHK(id: model.id) {
[weak self] success, error in
YHHUD.hide()
guard let self else { return }
if success {
// 重新请求列表
self.requestList()
return
}
let msg = error?.errorMsg ?? "提交失败"
YHHUD.flash(message: msg)
}
}
func requestList() {
YHHUD.show(.progress(message: "加载中..."))
self.viewModel.getAppointInfoList(renewalId: self.renewalId) {
[weak self] success,error in
YHHUD.hide()
guard let self else { return }
self.scheduleArr.removeAll()
self.scheduleArr.append(contentsOf: self.viewModel.scheduleInfoList.renewal_List)
self.tableView.reloadData()
self.updateBottomBtnAndMotifyBtnStatus()
}
}
} }
extension YHResignAppointSubmitScheduleViewController: UITableViewDelegate, UITableViewDataSource { extension YHResignAppointSubmitScheduleViewController: UITableViewDelegate, UITableViewDataSource {
...@@ -282,11 +318,14 @@ extension YHResignAppointSubmitScheduleViewController: UITableViewDelegate, UITa ...@@ -282,11 +318,14 @@ extension YHResignAppointSubmitScheduleViewController: UITableViewDelegate, UITa
if isTogether { if isTogether {
let cell = tableView.dequeueReusableCell(withIdentifier: YHResignHaveAppointedSingleInfoCell.cellReuseIdentifier, for: indexPath) as! YHResignHaveAppointedSingleInfoCell let cell = tableView.dequeueReusableCell(withIdentifier: YHResignHaveAppointedSingleInfoCell.cellReuseIdentifier, for: indexPath) as! YHResignHaveAppointedSingleInfoCell
cell.updateModel(model) cell.updateModel(model)
// 点击确认在港或未确认在港按钮
cell.clickConfirmBtnBlock = { cell.clickConfirmBtnBlock = {
[weak self] status in [weak self] status in
guard let self = self else { return } guard let self = self else { return }
self.clickConfirmHKButton(status: status) self.clickConfirmHKButton(status: status, model)
} }
cell.modifyBtn.isHidden = self.isHiddenModifyBtn
// 点击修改按钮
cell.modifyBtnBlock = { cell.modifyBtnBlock = {
[weak self] in [weak self] in
guard let self = self else { return } guard let self = self else { return }
...@@ -302,7 +341,7 @@ extension YHResignAppointSubmitScheduleViewController: UITableViewDelegate, UITa ...@@ -302,7 +341,7 @@ extension YHResignAppointSubmitScheduleViewController: UITableViewDelegate, UITa
cell2.clickConfirmBtnBlock = { cell2.clickConfirmBtnBlock = {
[weak self] status in [weak self] status in
guard let self = self else { return } guard let self = self else { return }
self.clickConfirmHKButton(status: status) self.clickConfirmHKButton(status: status, model)
} }
let isShowCorner = (indexPath.row == scheduleArr.count-1) let isShowCorner = (indexPath.row == scheduleArr.count-1)
cell2.showBottomCorner(isShowCorner) cell2.showBottomCorner(isShowCorner)
...@@ -362,6 +401,7 @@ extension YHResignAppointSubmitScheduleViewController: UITableViewDelegate, UITa ...@@ -362,6 +401,7 @@ extension YHResignAppointSubmitScheduleViewController: UITableViewDelegate, UITa
view.addSubview(titleLabel) view.addSubview(titleLabel)
let modifyBtn = UIButton() let modifyBtn = UIButton()
modifyBtn.isHidden = self.isHiddenModifyBtn
modifyBtn.setTitle("修改", for: .normal) modifyBtn.setTitle("修改", for: .normal)
modifyBtn.setTitleColor(.brandMainColor, for: .normal) modifyBtn.setTitleColor(.brandMainColor, for: .normal)
modifyBtn.titleLabel?.font = .PFSC_M(ofSize: 14) modifyBtn.titleLabel?.font = .PFSC_M(ofSize: 14)
......
...@@ -105,7 +105,7 @@ class YHResignAppointUser: SmartCodable, NSCopying { ...@@ -105,7 +105,7 @@ class YHResignAppointUser: SmartCodable, NSCopying {
func transformToMember() -> YHResignAppointMember { func transformToMember() -> YHResignAppointMember {
let m = YHResignAppointMember() let m = YHResignAppointMember()
m.id = self.id m.id = self.memberId
m.apply_name = self.name m.apply_name = self.name
return m return m
} }
......
...@@ -110,4 +110,22 @@ class YHResignAppointViewModel: NSObject { ...@@ -110,4 +110,22 @@ class YHResignAppointViewModel: NSObject {
callBack(false, err) callBack(false, err)
} }
} }
// 点击确认在港
func submitConfirmInHK(id: Int, callBack: @escaping (_ success: Bool,_ error: YHErrorModel?)->()) {
let params:[String : Any] = ["id" : id]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.ResignAppoint.confirmInHK
let _ = YHNetRequest.getRequest(url: strUrl, params:params) { [weak self] json, code in
//1. json字符串 转 对象
guard let _ = self else { return }
if json.code == 200 {
callBack(true, nil)
} else {
let error : YHErrorModel = YHErrorModel(errorCode:Int32(json.code), errorMsg: json.msg)
callBack(false, error)
}
} failBlock: { err in
callBack(false, err)
}
}
} }
...@@ -561,6 +561,8 @@ class YHAllApiName { ...@@ -561,6 +561,8 @@ class YHAllApiName {
static let appointInfoList = "super-app/renewal/reservation/list" static let appointInfoList = "super-app/renewal/reservation/list"
// 提交预约 // 提交预约
static let submitAppoint = "super-app/renewal/reservation/submit" static let submitAppoint = "super-app/renewal/reservation/submit"
// 提交确认在港
static let confirmInHK = "super-app/renewal/confirm-stay-hk"
} }
// 在港记录 // 在港记录
......
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