Commit 383060cd authored by David黄金龙's avatar David黄金龙

Merge branch 'develop' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS into develop

* 'develop' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS:
  //  赴港
  //  预约
  //  赴港
  //  重新预约逻辑
  //  赴港
  //  预约赴港
parents 2c18f7ce 5f9f3637
......@@ -168,7 +168,7 @@ GEM
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
fastlane-plugin-pgyer (0.2.9)
fastlane-plugin-upload_to_bugly (0.1.2)
fastlane-plugin-versioning (0.5.2)
fastlane-plugin-versioning (0.6.0)
ffi (1.16.3)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
......@@ -294,4 +294,4 @@ DEPENDENCIES
fastlane-plugin-versioning
BUNDLED WITH
2.5.14
2.5.9
......@@ -258,6 +258,10 @@ extension YHServiceOrderListView : UITableViewDelegate,UITableViewDataSource {
navigationController?.pushViewController(vc)
} else if model.type == 24 {
//赴港时间预约
let vc = YHCertificateAppointViewController()
vc.orderId = orderID
self.navigationController?.pushViewController(vc)
} else if model.type == 25 {
//赴港行程指引
} else if model.type == 26 {
......
......@@ -14,6 +14,11 @@ class YHReAppointViewController: YHBaseViewController {
var orderId: Int = 0
var items:[YHAppointItem] = []
var waitAppointMembers:[YHHKMemberModel] = []
var viewModel = YHCerAppointViewModel()
var updateBlock:(()->())?
lazy var tableView: UITableView = {
let tableView = UITableView(frame:.zero, style:.grouped)
tableView.estimatedSectionHeaderHeight = 16.0
......@@ -38,6 +43,30 @@ class YHReAppointViewController: YHBaseViewController {
return tableView
}()
lazy var bottomBtn: UIButton = {
let btn = UIButton()
btn.backgroundColor = .brandMainColor
btn.setTitle("确认提交", for: .normal)
btn.setTitleColor(.white, for: .normal)
btn.titleLabel?.font = UIFont.PFSC_M(ofSize: 16)
btn.addTarget(self, action: #selector(didBottomBtnClicked), for: .touchUpInside)
btn.layer.cornerRadius = kCornerRadius3
return btn
}()
lazy var bottomView: UIView = {
let view = UIView()
view.backgroundColor = .white
view.addSubview(bottomBtn)
bottomBtn.snp.makeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
make.top.equalTo(8)
make.height.equalTo(48)
}
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
createUI()
......@@ -49,10 +78,16 @@ class YHReAppointViewController: YHBaseViewController {
self.gk_navTitle = "赴港办证预约"
self.view.backgroundColor = .white
self.view.addSubview(self.tableView)
self.view.addSubview(bottomView)
self.tableView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.left.right.equalToSuperview()
make.top.equalTo(k_Height_NavigationtBarAndStatuBar)
make.bottom.equalTo(bottomView.snp.top)
}
self.bottomView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.height.equalTo(98.0)
}
updateData()
......@@ -65,11 +100,29 @@ class YHReAppointViewController: YHBaseViewController {
items.append(item1)
let item2 = YHAppointItem(type: .confirmGoHKInfo)
item2.itemIndex = 0
let group1 = YHSelectGroupMemberModel()
group1.isAllMembersGoHK = true
group1.arr = waitAppointMembers
item2.model = group1
item2.placeList = self.viewModel.placeList
item2.arrHkHolidays = self.viewModel.dataModelForHkHolidays?.legaldays ?? []
items.append(item2)
self.tableView.reloadData()
}
func getReAppointMemberNameText() -> String {
var text = ""
for (index, user) in self.waitAppointMembers.enumerated() {
text += user.name
if index != self.waitAppointMembers.count-1 {
text += "、"
}
}
text = "成员:\(text)"
return text
}
}
extension YHReAppointViewController: UITableViewDelegate, UITableViewDataSource {
......@@ -93,6 +146,14 @@ extension YHReAppointViewController: UITableViewDelegate, UITableViewDataSource
// 请您确认第X批赴港信息
let cell = tableView.dequeueReusableCell(withIdentifier: YHSelectApplicantGroupCell.cellReuseIdentifier, for: indexPath) as! YHSelectApplicantGroupCell
cell.isShowSelectUserView = false
cell.isShowRepointNameView = true
cell.repointMembersNameLabel.text = self.getReAppointMemberNameText()
cell.dataModel = item
cell.refreshBlock = {
[weak self] in
guard let self = self else { return }
self.tableView.reloadData()
}
return cell
}
}
......@@ -128,3 +189,96 @@ extension YHReAppointViewController: UITableViewDelegate, UITableViewDataSource
}
}
extension YHReAppointViewController {
@objc func didBottomBtnClicked() {
// 检测各批次是否有日期或办证地点未选择
var isOK = true
for item in self.items {
if item.type != .confirmGoHKInfo {
continue
}
if let groupModel = item.model {
if groupModel.dateTye == 0 { // 选择具体日期
if groupModel.detailDateStr.isEmpty {
groupModel.isNeedCheck = true
isOK = false
}
} else { // 选择具体时段
if groupModel.startDateStr.isEmpty || groupModel.endDateStr.isEmpty {
groupModel.isNeedCheck = true
isOK = false
}
}
// 办证地点未选
if groupModel.hkPlace.name.isEmpty {
groupModel.isNeedCheck = true
isOK = false
}
}
}
if !isOK { // 检测各批次是否有日期或办证地点未选择
self.tableView.reloadData()
return
}
var batchs:[[String: Any]] = []
for group in items {
if let model = group.model {
var start_time = ""
var end_time = ""
if model.dateTye == 0 { // 具体时间
start_time = model.detailDateStr
end_time = model.detailDateStr
} else { // 具体时段
start_time = model.startDateStr
end_time = model.endDateStr
}
let selectUsers = model.arr.filter {
return $0.isSelected == true
}
let users = self.waitAppointMembers.map {
let dict = ["id" : $0.id,
"type" : $0.type,
"name" : $0.name] as! [String : Any]
return dict
}
if users.count > 0 {
let batch:[String : Any] = ["start_time" : start_time,
"end_time" : end_time,
"migration_office" : model.hkPlace.name,
"users" : users]
batchs.append(batch)
}
}
}
// 请求参数
let params:[String : Any] = ["order_id": orderId,
"batch": batchs]
printLog("\(params)")
YHHUD.show(.progress(message: "加载中..."))
viewModel.submitAppoint(params: params) {
[weak self] success, error in
YHHUD.hide()
guard let self = self else { return }
if success {
YHHUD.flash(message: "提交成功")
updateBlock?()
self.navigationController?.popViewController()
return
}
let msg = error?.errorMsg ?? ""
YHHUD.flash(message: msg)
}
}
}
......@@ -65,4 +65,7 @@ class YHSelectGroupMemberModel {
// 需要检测日期和办证地点是否选择
var isNeedCheck = false
// 是否统一赴港
var isAllMembersGoHK: Bool = false
}
......@@ -11,7 +11,7 @@ import SmartCodable
class YHMakeCertificatePlaceModel: SmartCodable {
var id: Int = 0
var id: Int = -1
var name: String = ""
// 自定义
......@@ -20,5 +20,9 @@ class YHMakeCertificatePlaceModel: SmartCodable {
required init() {
}
func isEmpty() -> Bool {
return id == -1 && name.isEmpty
}
}
......@@ -150,7 +150,7 @@ class YHGrabNumberInfoItemView: UIView {
make.width.height.equalTo(dotWidth)
make.centerY.equalTo(detailLabel)
make.right.equalTo(detailLabel.snp.left).offset(-4)
make.left.greaterThanOrEqualTo(titleLabel.snp.right).offset(0)
// make.left.greaterThanOrEqualTo(titleLabel.snp.right).offset(0)
}
collectionView.snp.makeConstraints { make in
......
......@@ -15,11 +15,29 @@ class YHSelectHKPlaceListView: UIView {
return view
}
var selectModel: YHMakeCertificatePlaceModel? = nil
var selectModel: YHMakeCertificatePlaceModel? = nil {
didSet {
if let selectItem = selectModel {
for item in listArr {
item.isSelect = (selectItem.id == item.id && selectItem.name == item.name)
}
} else {
for item in listArr {
item.isSelect = false
}
}
self.tableView.reloadData()
}
}
var selectBlock: ((YHMakeCertificatePlaceModel)->())?
var listArr:[YHMakeCertificatePlaceModel] = [] {
didSet {
for item in listArr {
item.isSelect = false
}
self.tableView.reloadData()
}
}
......@@ -98,10 +116,12 @@ class YHSelectHKPlaceListView: UIView {
}
@objc func sure() {
if let model = self.selectModel {
if let model = self.selectModel, !model.isEmpty() {
selectBlock?(model)
self.dismiss()
return
}
self.dismiss()
YHHUD.flash(message: "请选择港府办证地点")
}
override init(frame: CGRect) {
......@@ -197,9 +217,6 @@ extension YHSelectHKPlaceListView: UITableViewDelegate, UITableViewDataSource {
if 0 <= indexPath.row && indexPath.row < listArr.count {
let model = listArr[indexPath.row]
selectModel = model
for item in listArr {
item.isSelect = (model.id == item.id)
}
self.tableView.reloadData()
}
}
......
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