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

Merge branch 'xq' into 'develop'

自助缴费优化续签在港预约优化

See merge request !22
parents 33ec14a8 650a4d97
......@@ -43,10 +43,12 @@ platform :ios do
gift = "gift_push"
Im_618 = "develop-tx-618"
GZL = "GZL"
xq = "xq"
webFix = "develop_bugfix_web"
#打包正使用的分支
myPack_branch = webFix
myPack_branch = xq
# 打adhoc包 执行命令 fastlane galaxyTest
......
......@@ -8616,7 +8616,7 @@
CODE_SIGN_ENTITLEMENTS = yinheReplayExt/yinheReplayExt.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 3;
CURRENT_PROJECT_VERSION = 4;
DEVELOPMENT_TEAM = RXHYW88XR7;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = yinheReplayExt/Info.plist;
......@@ -8628,7 +8628,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 2.2.9;
MARKETING_VERSION = 2.3.0;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy.yinheReplayExt;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
......@@ -8646,7 +8646,7 @@
CODE_SIGN_ENTITLEMENTS = yinheReplayExt/yinheReplayExt.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 3;
CURRENT_PROJECT_VERSION = 4;
DEVELOPMENT_TEAM = RXHYW88XR7;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = yinheReplayExt/Info.plist;
......@@ -8658,7 +8658,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 2.2.9;
MARKETING_VERSION = 2.3.0;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy.yinheReplayExt;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
......@@ -8676,7 +8676,7 @@
CODE_SIGN_ENTITLEMENTS = yinheReplayExt/yinheReplayExt.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 3;
CURRENT_PROJECT_VERSION = 4;
DEVELOPMENT_TEAM = RXHYW88XR7;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = yinheReplayExt/Info.plist;
......@@ -8688,7 +8688,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 2.2.9;
MARKETING_VERSION = 2.3.0;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy.yinheReplayExt;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
......@@ -8706,7 +8706,7 @@
CODE_SIGN_ENTITLEMENTS = yinheReplayExt/yinheReplayExt.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 3;
CURRENT_PROJECT_VERSION = 4;
DEVELOPMENT_TEAM = RXHYW88XR7;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = yinheReplayExt/Info.plist;
......@@ -8718,7 +8718,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 2.2.9;
MARKETING_VERSION = 2.3.0;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy.yinheReplayExt;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
......@@ -8795,7 +8795,7 @@
CODE_SIGN_ENTITLEMENTS = galaxy/galaxyTestEnv.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 3;
CURRENT_PROJECT_VERSION = 4;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = RXHYW88XR7;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
......@@ -8823,7 +8823,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2.2.9;
MARKETING_VERSION = 2.3.0;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
......@@ -8944,7 +8944,7 @@
CODE_SIGN_ENTITLEMENTS = galaxy/galaxy.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 3;
CURRENT_PROJECT_VERSION = 4;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = RXHYW88XR7;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
......@@ -8972,7 +8972,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2.2.9;
MARKETING_VERSION = 2.3.0;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
......@@ -9155,7 +9155,7 @@
CODE_SIGN_ENTITLEMENTS = galaxy/galaxyDebug.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 3;
CURRENT_PROJECT_VERSION = 4;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = RXHYW88XR7;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
......@@ -9183,7 +9183,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2.2.9;
MARKETING_VERSION = 2.3.0;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
......@@ -9206,7 +9206,7 @@
CODE_SIGN_ENTITLEMENTS = galaxy/galaxy.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 3;
CURRENT_PROJECT_VERSION = 4;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = RXHYW88XR7;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
......@@ -9234,7 +9234,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 2.2.9;
MARKETING_VERSION = 2.3.0;
PRODUCT_BUNDLE_IDENTIFIER = com.intelligence.galaxy;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
......
......@@ -52,6 +52,15 @@ class YHResignAppointScheduleListViewController: YHBaseViewController {
return tableView
}()
lazy var tipsLabel = {
let label = UILabel()
label.numberOfLines = 0
label.font = UIFont.PFSC_R(ofSize: 12)
label.textColor = .mainTextColor
label.text = "温馨提示:根据入境处系统网站填写规则(最高每4人一组)。若此次您同批次赴港递交人数超过 4 人,系统会自动拆分显示,不影响您的办理,敬请放心~"
return label
}()
lazy var guideBtn: UIButton = {
let button = UIButton()
button.setTitle("在港递交指引", for: .normal)
......@@ -101,10 +110,18 @@ class YHResignAppointScheduleListViewController: YHBaseViewController {
self.view.backgroundColor = .init(hex: 0xF8F9FB)
self.view.addSubview(tableView)
self.view.addSubview(bottomView)
self.tableView.snp.makeConstraints { make in
self.view.addSubview(tipsLabel)
self.tipsLabel.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
make.top.equalTo(k_Height_NavigationtBarAndStatuBar+16)
}
self.tableView.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
make.top.equalTo(tipsLabel.snp.bottom).offset(16)
make.bottom.equalTo(bottomView.snp.top)
}
self.bottomView.snp.makeConstraints { make in
......@@ -174,20 +191,22 @@ class YHResignAppointScheduleListViewController: YHBaseViewController {
}
func clickConfirmHKButton(status: YHResignConfirmHKStatus, _ model: YHResignAppointGroup) {
if status == .waitConfirmHK { // 待确认在港
// if status == .waitConfirmHK { // 待确认在港
// 展示提前到港弹窗
let alert = YHForwardArriveHKAlertView.alertView()
alert.confirmBlock = {
[weak self] isConfirm in
guard let self = self else { return }
if isConfirm {
// 去修改预约递交时间
self.modifySchedule()
}
}
alert.show()
// let alert = YHForwardArriveHKAlertView.alertView()
// alert.confirmBlock = {
// [weak self] isConfirm in
// guard let self = self else { return }
// if isConfirm {
// // 去修改预约递交时间
// self.modifySchedule()
// }
// }
// alert.show()
} else if status == .canConfirmHK { // 可点击确认在港
// } else
if status == .canConfirmHK { // 可点击确认在港
let alertView = YHResignAppointedScheduleRiskTipsView.alertView()
alertView.bottomBtnBlock = {
[weak self] isSure in
......@@ -327,7 +346,6 @@ class YHResignAppointScheduleListViewController: YHBaseViewController {
if lastLeftUnselectUsers.count > 0 { // 如果还有剩余的人 这批人不在行程列表里 可能是在后台随意操作删除用户的
let model = YHResignAppointTimeSettingModel()
let status = YHResignConfirmHKStatus.waitConfirmHK
model.isHaveAppointed = false
model.ready_to_submit_at = ""
model.leave_hk_at = ""
......@@ -417,7 +435,10 @@ class YHResignAppointScheduleListViewController: YHBaseViewController {
private func gotoH5RenewalApplicationVC(id: Int, isEdit: Int) {
// http://192.168.25.49:3000/renewalPayment.html#/?id=1728&isEdit=2&orderId=157506&stepId=613&param=eyJhbGjoQC7uciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTIxMzIyMDgsImkiOjQyMzgxNzEzODcwNzAyMSwidSI6IumTtuays-mbhuWboiIsInIiOiJzdXBlcl9hcHAifQ.ZWIiwq8qrUidVOyL7HZmjfQawQl5kN_DsZnvdj3y_jQ
var url = YHBaseUrlManager.shared.supportH5URL() + "renewalPayment.html#/" + "?id=\(id)&isEdit=\(isEdit)&orderId=\(orderId)&stepId=\(renewalId)"
// var url = YHBaseUrlManager.shared.supportH5URL() + "renewalPayment.html#/" + "?id=\(id)&isEdit=\(isEdit)&orderId=\(orderId)&stepId=\(renewalId)"
var url = YHBaseUrlManager.shared.businessH5Url() + "/deliver/self-pay?id=\(id)&isEdit=\(isEdit)&orderId=\(orderId)&stepId=\(renewalId)"
if YHLoginManager.shared.isLogin() {
let token = YHLoginManager.shared.h5Token
let urlHasParam = String.hasQueryParameters(urlString: url)
......
......@@ -171,6 +171,7 @@ extension YHResignAppointTimeModifyViewController: UITableViewDelegate, UITableV
guard let cell2 = tableView.dequeueReusableCell(withIdentifier: YHResignAppointTimeSingleCell.cellReuseIdentifier, for: indexPath) as? YHResignAppointTimeSingleCell else {
return UITableViewCell()
}
cell2.renewalId = self.renewalId
cell2.updateModel(self.oneGroupTimeSetting)
cell2.switchBlock = {
[weak self] isOn in
......@@ -200,6 +201,7 @@ extension YHResignAppointTimeModifyViewController: UITableViewDelegate, UITableV
guard let cell1 = tableView.dequeueReusableCell(withIdentifier: YHResignAppointTimeMultipleCell.cellReuseIdentifier, for: indexPath) as? YHResignAppointTimeMultipleCell else {
return UITableViewCell()
}
cell1.renewalId = self.renewalId
cell1.updateModel(model)
cell1.selectUserBlock = {
[weak self] member, isSelect, groupIndex in
......@@ -402,6 +404,20 @@ extension YHResignAppointTimeModifyViewController {
return
}
YHHUD.show(.progress(message: "加载中..."))
self.viewModel.getResignSubmitTime(renewalId: self.renewalId, userIds: self.allAppointUsers.map { return $0.id }) { result in
YHHUD.hide()
if let result = result {
self.oneGroupTimeSetting.server_submit_deadLine_start = result.stay_deadline_start
self.oneGroupTimeSetting.server_submit_deadLine_end = result.stay_deadline
if !self.oneGroupTimeSetting.checkSubmitTime() {
self.tableView.reloadData()
return
}
self.requestSubmit()
}
}
} else { // 非一起递交
for group in self.selectGroupArr {
......@@ -423,8 +439,38 @@ extension YHResignAppointTimeModifyViewController {
YHHUD.flash(message: "有分批未选择时间")
return
}
YHHUD.show(.progress(message: "加载中..."))
let dispatchGroup = DispatchGroup()
for group in self.selectGroupArr {
dispatchGroup.enter()
self.viewModel.getResignSubmitTime(renewalId: self.renewalId, userIds: group.users.filter { $0.isSelected }.map { return $0.id }) { result in
if let result = result {
group.server_submit_deadLine_start = result.stay_deadline_start
group.server_submit_deadLine_end = result.stay_deadline
}
dispatchGroup.leave()
}
}
var isChecked = true
dispatchGroup.notify(queue: .main) {
YHHUD.hide()
for group in self.selectGroupArr {
group.isClickSubmit = true
if !group.checkSubmitTime() {
isChecked = false
}
}
if !isChecked {
self.tableView.reloadData()
return
}
self.requestSubmit()
}
}
requestSubmit()
}
func requestSubmit() {
......
......@@ -304,8 +304,37 @@ class YHResignAppointTimeViewController: YHBaseViewController {
self.tableView.reloadData()
return
}
YHHUD.show(.progress(message: "加载中..."))
let dispatchGroup = DispatchGroup()
for group in self.selectGroupArr {
dispatchGroup.enter()
self.viewModel.getResignSubmitTime(renewalId: self.renewalId, userIds: group.users.filter { $0.isSelected }.map { return $0.id }) { result in
if let result = result {
group.server_submit_deadLine_start = result.stay_deadline_start
group.server_submit_deadLine_end = result.stay_deadline
}
dispatchGroup.leave()
}
}
requestSubmit()
var isChecked = true
dispatchGroup.notify(queue: .main) {
YHHUD.hide()
for group in self.selectGroupArr {
group.isClickSubmit = true
if !group.checkSubmitTime() {
isChecked = false
}
}
if !isChecked {
self.tableView.reloadData()
return
}
self.requestSubmit()
}
}
func requestSubmit() {
......@@ -428,6 +457,7 @@ extension YHResignAppointTimeViewController: UITableViewDelegate, UITableViewDat
guard let cell2 = tableView.dequeueReusableCell(withIdentifier: YHResignAppointTimeSingleCell.cellReuseIdentifier, for: indexPath) as? YHResignAppointTimeSingleCell else {
return UITableViewCell()
}
cell2.renewalId = self.renewalId
cell2.updateModel(model)
cell2.switchBlock = {
[weak self] isOn in
......@@ -446,6 +476,7 @@ extension YHResignAppointTimeViewController: UITableViewDelegate, UITableViewDat
guard let cell3 = tableView.dequeueReusableCell(withIdentifier: YHResignAppointTimeMultipleCell.cellReuseIdentifier, for: indexPath) as? YHResignAppointTimeMultipleCell else {
return UITableViewCell()
}
cell3.renewalId = self.renewalId
cell3.updateModel(model)
cell3.selectUserBlock = {
[weak self] member, isSelect, groupIndex in
......
......@@ -70,16 +70,17 @@ class YHResignAppointGroup: SmartCodable {
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm"
let nowDateString = dateFormatter.string(from: Date())
var confirmStatus = YHResignConfirmHKStatus.waitConfirmHK
var confirmStatus = YHResignConfirmHKStatus.canConfirmHK
if self.determine_hk_at.isEmpty {
// 是否到了预约递交时间
let isArriveSubmitTime = compareDates(self.ready_to_submit_at, nowDateString)
if isArriveSubmitTime {
confirmStatus = .waitConfirmHK
} else {
confirmStatus = .canConfirmHK
}
// let isArriveSubmitTime = compareDates(self.ready_to_submit_at, nowDateString)
// if isArriveSubmitTime {
// confirmStatus = .waitConfirmHK
// } else {
// confirmStatus = .canConfirmHK
// }
confirmStatus = .canConfirmHK
} else { // 有确认在港日期
confirmStatus = .haveConfirmHK
......
......@@ -20,6 +20,9 @@ class YHResignAppointTimeSettingModel: SmartCodable {
var isClickSubmit: Bool = false
var isHaveAppointed: Bool = false
var server_submit_deadLine_start: String = ""
var server_submit_deadLine_end: String = ""
func getLeaveHKTime() -> String {
let format = "yyyy-MM-dd HH:mm"
if leave_hk_at.count <= format.count {
......@@ -40,4 +43,43 @@ class YHResignAppointTimeSettingModel: SmartCodable {
}
func checkSubmitTime() -> Bool {
if server_submit_deadLine_start.isEmpty || server_submit_deadLine_end.isEmpty {
return true
}
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
guard let startDate = dateFormatter.date(from: server_submit_deadLine_start) else {
return true
}
guard let endDate = dateFormatter.date(from: server_submit_deadLine_end) else {
return true
}
// 将结束日期C设置为当天的23:59:59,确保包含整天
let calendar = Calendar.current
guard let endOfDay = calendar.date(bySettingHour: 23, minute: 59, second: 59, of: endDate) else {
return true
}
let dateTimeFormatter = DateFormatter()
if self.ready_to_submit_at.count == "yyyy-MM-dd HH:mm:ss".count {
dateTimeFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
} else if self.ready_to_submit_at.count == "yyyy-MM-dd HH:mm".count {
dateTimeFormatter.dateFormat = "yyyy-MM-dd HH:mm"
} else {
dateTimeFormatter.dateFormat = "yyyy-MM-dd"
}
guard let targetDate = dateTimeFormatter.date(from: self.ready_to_submit_at) else {
return true
}
// 判断目标日期是否在范围内 (包含边界)
let result = (startDate <= targetDate && targetDate <= endOfDay)
return result
}
}
......@@ -10,9 +10,9 @@ import UIKit
class YHPickTimeHoldView: UIView {
var clickConfirmBtnBlock: ((YHResignConfirmHKStatus) -> Void)?
var confirmHKStatus: YHResignConfirmHKStatus = .waitConfirmHK
// var clickConfirmBtnBlock: ((YHResignConfirmHKStatus) -> Void)?
//
// var confirmHKStatus: YHResignConfirmHKStatus = .waitConfirmHK
lazy var lineView: UIView = {
let view = UIView()
......@@ -61,7 +61,7 @@ class YHPickTimeHoldView: UIView {
}
@objc func didConfirmInHKBtnClicked() {
clickConfirmBtnBlock?(self.confirmHKStatus)
// clickConfirmBtnBlock?(self.confirmHKStatus)
}
func createUI() {
......
......@@ -12,7 +12,9 @@ import AttributedString
class YHResignAppointTimeMultipleCell: UITableViewCell {
static let cellReuseIdentifier = "YHResignAppointTimeMultipleCell"
var renewalId: Int = 0
let viewModel = YHResignAppointViewModel()
var model: YHResignAppointTimeSettingModel = YHResignAppointTimeSettingModel()
var arr: [YHResignAppointMember] = []
......@@ -312,7 +314,20 @@ class YHResignAppointTimeMultipleCell: UITableViewCell {
leaveTimeItemView.detail = model.getLeaveHKTime()
// 时间控件红色提示显示
submitTimeItemView.isNeedShowErrorTips = (model.isClickSubmit && model.ready_to_submit_at.isEmpty)
var isNeeShowSubmitTimeError = false
if model.isClickSubmit {
if model.ready_to_submit_at.isEmpty {
isNeeShowSubmitTimeError = true
submitTimeItemView.errorTips = "请选择在港递交时间"
} else if !model.server_submit_deadLine_start.isEmpty, !model.server_submit_deadLine_end.isEmpty {
if !model.checkSubmitTime() {
isNeeShowSubmitTimeError = true
submitTimeItemView.errorTips = "递交时间不在允许的范围内"
}
}
}
submitTimeItemView.isNeedShowErrorTips = isNeeShowSubmitTimeError
leaveTimeItemView.isNeedShowErrorTips = (model.isClickSubmit && model.leave_hk_at.isEmpty)
leaveTimeItemView.removeFromSuperview()
......@@ -354,6 +369,7 @@ class YHResignAppointTimeMultipleCell: UITableViewCell {
func getDateInfo(_ result: ((_ startTime: String, _ endTime: String) -> Void)?) {
/*
// 开始时间和结束时间 都有则都取服务器model时间
// 若开始时间为空则取当前时间
// 若结束时间为空则取当前时间+28天的时间
......@@ -387,6 +403,15 @@ class YHResignAppointTimeMultipleCell: UITableViewCell {
let duration = "START_DATE: \(startTimeStr) END_DATE: \(endTimeStr)"
printLog("\(duration)")
result?(startTimeStr, endTimeStr)
*/
YHHUD.show(.progress(message: "加载中..."))
self.viewModel.getResignSubmitTime(renewalId: self.renewalId, userIds: self.model.users.filter { $0.isSelected }.map { return $0.id }) { model in
YHHUD.hide()
if let model = model {
result?(model.stay_deadline_start, model.stay_deadline)
}
}
}
func compareDates(_ dateStr1: String, _ dateStr2: String) -> YHDateCompareResult {
......
......@@ -19,6 +19,8 @@ class YHResignAppointTimeSingleCell: UITableViewCell {
static let cellReuseIdentifier = "YHResignAppointTimeSingleCell"
var model = YHResignAppointTimeSettingModel()
var renewalId: Int = 0
let viewModel = YHResignAppointViewModel()
var switchBlock: ((Bool) -> Void)?
var refreshBlock: (() -> Void)?
......@@ -170,7 +172,20 @@ class YHResignAppointTimeSingleCell: UITableViewCell {
leaveTimeItemView.detail = model.getLeaveHKTime()
// 时间控件红色提示显示
submitTimeItemView.isNeedShowErrorTips = (model.isClickSubmit && model.ready_to_submit_at.isEmpty)
var isNeeShowSubmitTimeError = false
if model.isClickSubmit {
if model.ready_to_submit_at.isEmpty {
isNeeShowSubmitTimeError = true
submitTimeItemView.errorTips = "请选择在港递交时间"
} else if !model.server_submit_deadLine_start.isEmpty, !model.server_submit_deadLine_end.isEmpty {
if !model.checkSubmitTime() {
isNeeShowSubmitTimeError = true
submitTimeItemView.errorTips = "递交时间不在允许的范围内"
}
}
}
submitTimeItemView.isNeedShowErrorTips = isNeeShowSubmitTimeError
leaveTimeItemView.isNeedShowErrorTips = (model.isClickSubmit && model.leave_hk_at.isEmpty)
leaveTimeItemView.removeFromSuperview()
......@@ -251,6 +266,7 @@ class YHResignAppointTimeSingleCell: UITableViewCell {
func getDateInfo(_ result: ((_ startTime: String, _ endTime: String) -> Void)?) {
/*
// 开始时间和结束时间 都有则都取服务器model时间
// 若开始时间为空则取当前时间
// 若结束时间为空则取当前时间+28天的时间
......@@ -284,6 +300,15 @@ class YHResignAppointTimeSingleCell: UITableViewCell {
let duration = "START_DATE: \(startTimeStr) END_DATE: \(endTimeStr)"
printLog("\(duration)")
result?(startTimeStr, endTimeStr)
*/
YHHUD.show(.progress(message: "加载中..."))
self.viewModel.getResignSubmitTime(renewalId: self.renewalId, userIds: self.model.users.filter { $0.isSelected }.map { return $0.id }) { model in
YHHUD.hide()
if let model = model {
result?(model.stay_deadline_start, model.stay_deadline)
}
}
}
func compareDates(_ dateStr1: String, _ dateStr2: String) -> YHDateCompareResult {
......
......@@ -13,7 +13,7 @@ class YHResignAppointedScheduleSingleItemView: UIView {
var clickConfirmBtnBlock: ((YHResignConfirmHKStatus) -> Void)?
var applyPaymentBlock: (() -> Void)?
var confirmHKStatus: YHResignConfirmHKStatus = .waitConfirmHK
var confirmHKStatus: YHResignConfirmHKStatus = .canConfirmHK
lazy var lineView: UIView = {
let view = UIView()
......@@ -120,9 +120,11 @@ class YHResignAppointedScheduleSingleItemView: UIView {
confirmInHKBtn.isHidden = (self.confirmHKStatus == .haveConfirmHK)
var statusWidth = 71.0
if self.confirmHKStatus == .waitConfirmHK {
statusWidth = 71.0
} else if self.confirmHKStatus == .canConfirmHK {
// if self.confirmHKStatus == .waitConfirmHK {
// statusWidth = 71.0
// } else
if self.confirmHKStatus == .canConfirmHK {
statusWidth = 68.0
} else if self.confirmHKStatus == .haveConfirmHK {
statusWidth = 65.0
......@@ -133,15 +135,17 @@ class YHResignAppointedScheduleSingleItemView: UIView {
make.right.equalTo(-18-statusWidth-18)
}
if self.confirmHKStatus == .waitConfirmHK {
confirmInHKBtn.setTitle("待确认在港", for: .normal)
confirmInHKBtn.setTitleColor(.mainTextColor, for: .normal)
confirmInHKBtn.backgroundColor = .init(hex: 0xF4F6FA)
confirmInHKBtn.snp.updateConstraints { make in
make.width.equalTo(71)
}
} else if self.confirmHKStatus == .canConfirmHK {
// if self.confirmHKStatus == .waitConfirmHK {
// confirmInHKBtn.setTitle("待确认在港", for: .normal)
// confirmInHKBtn.setTitleColor(.mainTextColor, for: .normal)
// confirmInHKBtn.backgroundColor = .init(hex: 0xF4F6FA)
// confirmInHKBtn.snp.updateConstraints { make in
// make.width.equalTo(71)
// }
//
// } else
if self.confirmHKStatus == .canConfirmHK {
confirmInHKBtn.setTitle("确认在港", for: .normal)
confirmInHKBtn.setTitleColor(.white, for: .normal)
confirmInHKBtn.backgroundColor = .brandMainColor
......
......@@ -12,7 +12,7 @@ class YHResignScheduleMultipleInfoCell: UITableViewCell {
static let cellReuseIdentifier = "YHResignScheduleMultipleInfoCell"
var confirmHKStatus: YHResignConfirmHKStatus = .waitConfirmHK
var confirmHKStatus: YHResignConfirmHKStatus = .canConfirmHK
var clickConfirmBtnBlock: ((YHResignConfirmHKStatus) -> Void)?
var applyPaymentBlock: (() -> Void)?
......@@ -148,15 +148,17 @@ class YHResignScheduleMultipleInfoCell: UITableViewCell {
haveConfirmInHKLabel.isHidden = (self.confirmHKStatus != .haveConfirmHK)
confirmInHKBtn.isHidden = (self.confirmHKStatus == .haveConfirmHK)
if self.confirmHKStatus == .waitConfirmHK {
confirmInHKBtn.setTitle("待确认在港", for: .normal)
confirmInHKBtn.setTitleColor(.mainTextColor, for: .normal)
confirmInHKBtn.backgroundColor = .init(hex: 0xF4F6FA)
confirmInHKBtn.snp.updateConstraints { make in
make.width.equalTo(71)
}
} else if self.confirmHKStatus == .canConfirmHK {
// if self.confirmHKStatus == .waitConfirmHK {
// confirmInHKBtn.setTitle("待确认在港", for: .normal)
// confirmInHKBtn.setTitleColor(.mainTextColor, for: .normal)
// confirmInHKBtn.backgroundColor = .init(hex: 0xF4F6FA)
// confirmInHKBtn.snp.updateConstraints { make in
// make.width.equalTo(71)
// }
//
// } else
if self.confirmHKStatus == .canConfirmHK {
confirmInHKBtn.setTitle("确认在港", for: .normal)
confirmInHKBtn.setTitleColor(.white, for: .normal)
confirmInHKBtn.backgroundColor = .brandMainColor
......
......@@ -9,7 +9,7 @@
import UIKit
enum YHResignConfirmHKStatus: Int {
case waitConfirmHK = 0 // 待确认在港
// case waitConfirmHK = 0 // 待确认在港
case canConfirmHK = 1 // 可点击确认在港
case haveConfirmHK = 2 // 已确认在港
}
......
......@@ -7,6 +7,16 @@
//
import UIKit
import SmartCodable
class YHResingTimeModel: SmartCodable {
var stay_deadline: String = ""
var stay_deadline_start: String = ""
required init() {
}
}
class YHResignAppointViewModel: NSObject {
......@@ -15,6 +25,31 @@ class YHResignAppointViewModel: NSObject {
// 预约列表预约
var scheduleInfoList: YHResignScheduleListModel = YHResignScheduleListModel()
// 获取续签提交时间
func getResignSubmitTime(renewalId: Int, userIds: [Int], callBack: @escaping (_ result: YHResingTimeModel?) -> Void) {
let params: [String: Any] = ["renewal_id": renewalId,
"user_id": userIds]
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.ResignAppoint.submitTime
_ = YHNetRequest.postRequest(url: strUrl, params: params) {[weak self] json, _ in
if json.code == 200 {
guard let dic = json.data?.peel as? [String: Any], let resultModel = YHResingTimeModel.deserialize(from: dic) else {
// let err = YHErrorModel(errorCode: YHErrorCode.dictParseError.rawValue, errorMsg: YHErrorCode.dictParseError.description())
callBack(nil)
return
}
callBack(resultModel)
} else {
// let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
callBack(nil)
}
} failBlock: { _ in
callBack(nil)
}
}
// 赴港人员列表
func getResignAppointUserlist(renewalId: Int, callBack: @escaping (_ success: Bool, _ error: YHErrorModel?) -> Void) {
let params = ["renewal_id": renewalId]
......@@ -46,27 +81,6 @@ class YHResignAppointViewModel: NSObject {
}
}
func getUsers() -> [YHResignAppointMember] {
let m1 = YHResignAppointMember()
m1.apply_name = "刘德华"
m1.id = 123
let m2 = YHResignAppointMember()
m2.apply_name = "黎明"
m2.id = 124
let m3 = YHResignAppointMember()
m3.apply_name = "郭富城"
m3.id = 125
let m4 = YHResignAppointMember()
m4.apply_name = "张学友"
m4.id = 126
return [m1, m2, m3, m4]
}
// 预约列表预约
func getScheduleInfoList(renewalId: Int, callBack: @escaping (_ success: Bool, _ error: YHErrorModel?) -> Void) {
let params = ["renewal_id": renewalId]
......
......@@ -622,6 +622,8 @@ class YHAllApiName {
static let submitAppoint = "super-app/renewal/reservation/submit"
// 提交确认在港
static let confirmInHK = "super-app/renewal/confirm-stay-hk"
//
static let submitTime = "super-app/renewal/submit-time"
}
// 续签信息确认
......
......@@ -57,6 +57,20 @@ class YHBaseUrlManager {
return YHConfigManager.shared.supportH5Url
}
func businessH5Url() -> String {
var url = ""
#if DEBUG
url = "https://test-businessh5.galaxy-immi.com"
#elseif TESTENV
url = "https://test-businessh5.galaxy-immi.com"
#elseif UATENV
url = "https://businessh5.galaxy-immi.com"
#else
url = "https://businessh5.galaxy-immi.com"
#endif
return url
}
// 隐私协议 PrivacyAgreement
func curPrivacyAgreementUrl() -> String {
return curH5URL() + "superApp/ganglife"
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "图片替换@2x.png",
"filename" : "图片替换-1.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "图片替换@3x.png",
"filename" : "图片替换.png",
"idiom" : "universal",
"scale" : "3x"
}
......
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