Commit e21f878b 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:
  //  去除测试代码
  // 赴港
  // UI
  //  赴港
  //  选择时段和地点控件UI
  // UI
parents a9a88933 f86617d4
...@@ -194,34 +194,38 @@ class YHCertificateAppointViewController: YHBaseViewController { ...@@ -194,34 +194,38 @@ class YHCertificateAppointViewController: YHBaseViewController {
if self.isAllMembersGo { // 申请人统一赴港激活签证 if self.isAllMembersGo { // 申请人统一赴港激活签证
let item5 = YHAppointItem(type: .confirmGoHKInfo) if self.waitAppointMembers.count > 0 {
item5.itemIndex = 0 let item5 = YHAppointItem(type: .confirmGoHKInfo)
let group1 = YHSelectGroupMemberModel() item5.itemIndex = 0
group1.isAllMembersGoHK = true let group1 = YHSelectGroupMemberModel()
group1.arr = waitAppointMembers.deepCopy().map { group1.isAllMembersGoHK = true
let member = $0 group1.arr = waitAppointMembers.deepCopy().map {
member.isSelected = true let member = $0
return member member.isSelected = true
return member
}
item5.model = group1
item5.placeList = self.viewModel.placeList
item5.arrHkHolidays = self.viewModel.dataModelForHkHolidays?.legaldays ?? []
selectMemberGroupArr.append(item5)
} }
item5.model = group1
item5.placeList = self.viewModel.placeList
item5.arrHkHolidays = self.viewModel.dataModelForHkHolidays?.legaldays ?? []
selectMemberGroupArr.append(item5)
} else { // 申请人不是统一赴港激活签证 } else { // 申请人不是统一赴港激活签证
let item6 = YHAppointItem(type: .confirmGoHKInfo)
item6.itemIndex = 0
let group1 = YHSelectGroupMemberModel()
group1.arr = waitAppointMembers.deepCopy().map {
let member = $0
member.isSelected = true
return member
}
item6.model = group1
item6.placeList = self.viewModel.placeList
item6.arrHkHolidays = self.viewModel.dataModelForHkHolidays?.legaldays ?? []
selectMemberGroupArr.append(item6)
if self.waitAppointMembers.count > 0 {
let item6 = YHAppointItem(type: .confirmGoHKInfo)
item6.itemIndex = 0
let group1 = YHSelectGroupMemberModel()
group1.arr = waitAppointMembers.deepCopy().map {
let member = $0
member.isSelected = true
return member
}
item6.model = group1
item6.placeList = self.viewModel.placeList
item6.arrHkHolidays = self.viewModel.dataModelForHkHolidays?.legaldays ?? []
selectMemberGroupArr.append(item6)
}
} }
} else { // 有预约过的人员 } else { // 有预约过的人员
...@@ -277,13 +281,14 @@ class YHCertificateAppointViewController: YHBaseViewController { ...@@ -277,13 +281,14 @@ class YHCertificateAppointViewController: YHBaseViewController {
self.bottomStatus = .confirmSubmitAppoint self.bottomStatus = .confirmSubmitAppoint
} else if self.isNeedGoHK == 0 { // 赴港办证选否 } else if self.isNeedGoHK == 0 { // 赴港办证选否
// 底部按钮显示下一步去缴费 // 底部按钮显示下一步去缴费
self.bottomStatus = .nextStepToPay self.bottomStatus = .nextStepToPay
} else { // 赴港办证未选择 } else { // 赴港办证未选择
// 不显示底部按钮 // 不显示底部按钮
self.bottomStatus = .hidden self.bottomStatus = .hidden
} }
} else { // 有预约过 } else { // 有预约过
if waitAppointMembers.count <= 0 { // 全部都预约完了 if waitAppointMembers.count <= 0 { // 全部都预约完了
self.bottomStatus = .nextStepToPay self.bottomStatus = .nextStepToPay
...@@ -291,6 +296,10 @@ class YHCertificateAppointViewController: YHBaseViewController { ...@@ -291,6 +296,10 @@ class YHCertificateAppointViewController: YHBaseViewController {
} else { // 还有未预约人员 } else { // 还有未预约人员
// 不显示底部按钮 // 不显示底部按钮
self.bottomStatus = .hidden self.bottomStatus = .hidden
if self.successList.count > 0 { // 有不分成功预约人员
// 底部按钮显示下一步去缴费
self.bottomStatus = .nextStepToPay
}
} }
} }
...@@ -744,6 +753,11 @@ extension YHCertificateAppointViewController { ...@@ -744,6 +753,11 @@ extension YHCertificateAppointViewController {
func submitAppointInfo() { func submitAppointInfo() {
if self.waitAppointMembers.count <= 0 {
YHHUD.flash(message: "无赴港人员")
return
}
// 检测各批次是否有日期或办证地点未选择 // 检测各批次是否有日期或办证地点未选择
var isOK = true var isOK = true
for item in self.selectMemberGroupArr { for item in self.selectMemberGroupArr {
......
...@@ -100,7 +100,7 @@ class YHActivateHKVisaCell: UITableViewCell { ...@@ -100,7 +100,7 @@ class YHActivateHKVisaCell: UITableViewCell {
optionView.snp.makeConstraints { make in optionView.snp.makeConstraints { make in
make.top.equalTo(lineView.snp.bottom).offset(0) make.top.equalTo(lineView.snp.bottom).offset(0)
make.left.equalTo(18) make.left.equalTo(18)
make.right.equalTo(0) make.right.equalTo(-18)
make.bottom.equalTo(0) make.bottom.equalTo(0)
} }
} }
......
...@@ -118,7 +118,7 @@ class YHCertificateAppointOptionCell: UITableViewCell { ...@@ -118,7 +118,7 @@ class YHCertificateAppointOptionCell: UITableViewCell {
optionsView.snp.makeConstraints { make in optionsView.snp.makeConstraints { make in
make.top.equalTo(detailLabel.snp.bottom).offset(10) make.top.equalTo(detailLabel.snp.bottom).offset(10)
make.left.equalTo(18) make.left.equalTo(18)
make.right.equalTo(0) make.right.equalTo(-18)
make.bottom.equalTo(-8) make.bottom.equalTo(-8)
} }
} }
......
...@@ -20,17 +20,19 @@ class YHGrabItem { ...@@ -20,17 +20,19 @@ class YHGrabItem {
var detail: String = "" var detail: String = ""
var files: [String] = [] var files: [String] = []
var publicFiles: [String] = [] var publicFiles: [String] = []
var isSingleLine: Bool = true
required init() { required init() {
} }
init(type: YHGrabItemViewType, title: String, detail: String, files:[String] = [], publicFiles:[String] = []) { init(type: YHGrabItemViewType, title: String, detail: String, files:[String] = [], publicFiles:[String] = [], isSingleLine: Bool = true) {
self.type = type self.type = type
self.title = title self.title = title
self.detail = detail self.detail = detail
self.files = files self.files = files
self.publicFiles = publicFiles self.publicFiles = publicFiles
self.isSingleLine = isSingleLine
} }
} }
...@@ -68,6 +70,15 @@ class YHGrabNumberInfoItemView: UIView { ...@@ -68,6 +70,15 @@ class YHGrabNumberInfoItemView: UIView {
titleLabel.text = item.title titleLabel.text = item.title
detailLabel.text = item.detail detailLabel.text = item.detail
if item.isSingleLine {
detailLabel.textAlignment = .right
} else { // 需要显示多行
// 当文字只有一行时右对齐,当文字有多行时左对齐
let detaiLabelMaxWidth = KScreenWidth-(34.0+14.0)*2.0-titleMaxWidth
let detailHeight = self.getHeight(text: item.detail, font: detailLabel.font, width: detaiLabelMaxWidth)
detailLabel.textAlignment = detailHeight > 20.0 ? .left : .right
}
if item.type == .grab { if item.type == .grab {
detailLabel.textColor = grabNumColor detailLabel.textColor = grabNumColor
...@@ -75,9 +86,13 @@ class YHGrabNumberInfoItemView: UIView { ...@@ -75,9 +86,13 @@ class YHGrabNumberInfoItemView: UIView {
detailLabel.textColor = infoColor detailLabel.textColor = infoColor
} }
detailLabel.snp.updateConstraints { make in
make.left.greaterThanOrEqualTo(titleLabel.snp.right).offset(item.isSingleLine ? -20 : 0)
}
dotView.isHidden = (item.type != .grab) dotView.isHidden = (item.type != .grab)
collectionView.isHidden = item.type != .files collectionView.isHidden = item.type != .files
collectionView.reloadData() collectionView.reloadData()
var rowCount = item.files.count/4 var rowCount = item.files.count/4
if item.files.count%4 != 0 { if item.files.count%4 != 0 {
...@@ -148,13 +163,13 @@ class YHGrabNumberInfoItemView: UIView { ...@@ -148,13 +163,13 @@ class YHGrabNumberInfoItemView: UIView {
make.right.equalTo(0) make.right.equalTo(0)
make.top.equalTo(0) make.top.equalTo(0)
make.height.greaterThanOrEqualTo(20.0) make.height.greaterThanOrEqualTo(20.0)
make.left.greaterThanOrEqualTo(titleLabel.snp.right).offset(0)
} }
dotView.snp.makeConstraints { make in dotView.snp.makeConstraints { make in
make.width.height.equalTo(dotWidth) make.width.height.equalTo(dotWidth)
make.centerY.equalTo(detailLabel) make.centerY.equalTo(detailLabel)
make.right.equalTo(detailLabel.snp.left).offset(-4) make.right.equalTo(detailLabel.snp.left).offset(-4)
make.left.greaterThanOrEqualTo(titleLabel.snp.right).offset(0)
} }
collectionView.snp.makeConstraints { make in collectionView.snp.makeConstraints { make in
...@@ -164,6 +179,13 @@ class YHGrabNumberInfoItemView: UIView { ...@@ -164,6 +179,13 @@ class YHGrabNumberInfoItemView: UIView {
make.bottom.equalTo(0) make.bottom.equalTo(0)
} }
} }
func getHeight(text:String, font:UIFont, width:CGFloat)->CGFloat {
let size = CGSize.init(width:width , height: CGFloat(MAXFLOAT))
let dic = [NSAttributedString.Key.font: font]
let strSize = text.boundingRect(with: size, options: [.usesLineFragmentOrigin], attributes: dic, context:nil).size
return CGSizeMake(strSize.width, ceil(strSize.height)).height
}
} }
class YHGrabNumberInfoView: UIView { class YHGrabNumberInfoView: UIView {
......
...@@ -31,14 +31,15 @@ class YHGrabingNumberListCell: UITableViewCell { ...@@ -31,14 +31,15 @@ class YHGrabingNumberListCell: UITableViewCell {
} }
// 抢号信息 // 抢号信息
let items1 = [YHGrabItem(type: .grab, title: "赴港时间:", detail: "抢号中"), let items1 = [YHGrabItem(type: .grab, title: "赴港时间:", detail: "抢号中", isSingleLine: true),
YHGrabItem(type: .grab, title: "香港入境处:", detail: "抢号中"), YHGrabItem(type: .grab, title: "香港入境处:", detail: "抢号中", isSingleLine: true),
YHGrabItem(type: .grab, title: "抢号反馈回执:", detail: "抢号中"),] YHGrabItem(type: .grab, title: "抢号反馈回执:", detail: "抢号中",isSingleLine: true),]
listView.grabInfoView.updateItems(items1) listView.grabInfoView.updateItems(items1)
// 意向信息 // 意向信息
let items2 = [YHGrabItem(type: .info, title: "期望赴港时间:", detail: "\(group.wantMinTime)~\(group.wantMaxTime)"), let items2 = [YHGrabItem(type: .info, title: "期望赴港时间:", detail: "\(group.wantMinTime) ~ \(group.wantMaxTime)",isSingleLine: true),
YHGrabItem(type: .info, title: "期望香港办证点:", detail: group.wantImmigrationOffice)] YHGrabItem(type: .info, title: "期望香港办证点:", detail: group.wantImmigrationOffice, isSingleLine: false)]
listView.intentionInfoView.updateItems(items2) listView.intentionInfoView.updateItems(items2)
listContainView.addSubview(listView) listContainView.addSubview(listView)
......
...@@ -56,9 +56,9 @@ class YHGrabingNumberListView: UIView { ...@@ -56,9 +56,9 @@ class YHGrabingNumberListView: UIView {
lazy var grabInfoView: YHGrabNumberInfoView = { lazy var grabInfoView: YHGrabNumberInfoView = {
let view = YHGrabNumberInfoView(frame: .zero) let view = YHGrabNumberInfoView(frame: .zero)
view.titleLabel.text = "抢号信息" view.titleLabel.text = "抢号信息"
let items = [YHGrabItem(type: .grab, title: "赴港时间:", detail: "抢号中"), let items = [YHGrabItem(type: .grab, title: "赴港时间:", detail: "抢号中", isSingleLine: true),
YHGrabItem(type: .grab, title: "香港入境处:", detail: "抢号中"), YHGrabItem(type: .grab, title: "香港入境处:", detail: "抢号中", isSingleLine: true),
YHGrabItem(type: .grab, title: "抢号反馈回执:", detail: "抢号中"),] YHGrabItem(type: .grab, title: "抢号反馈回执:", detail: "抢号中", isSingleLine: true),]
view.updateItems(items) view.updateItems(items)
return view return view
}() }()
...@@ -66,9 +66,9 @@ class YHGrabingNumberListView: UIView { ...@@ -66,9 +66,9 @@ class YHGrabingNumberListView: UIView {
lazy var intentionInfoView: YHGrabNumberInfoView = { lazy var intentionInfoView: YHGrabNumberInfoView = {
let view = YHGrabNumberInfoView(frame: .zero) let view = YHGrabNumberInfoView(frame: .zero)
view.titleLabel.text = "意向信息" view.titleLabel.text = "意向信息"
let items = [YHGrabItem(type: .info, title: "期望赴港时间:", detail: ""), let items = [YHGrabItem(type: .info, title: "期望赴港时间:", detail: "", isSingleLine: true),
YHGrabItem(type: .info, title: "期望香港办证点:", detail: ""), YHGrabItem(type: .info, title: "期望香港办证点:", detail: "", isSingleLine: false),
YHGrabItem(type: .files, title: "抢号反馈回执:", detail: ""),] YHGrabItem(type: .files, title: "抢号反馈回执:", detail: "", isSingleLine: true),]
view.updateItems(items) view.updateItems(items)
return view return view
}() }()
......
...@@ -41,8 +41,8 @@ class YHHaveGrabbedNumberInfoView: UIView { ...@@ -41,8 +41,8 @@ class YHHaveGrabbedNumberInfoView: UIView {
lazy var grabInfoView: YHGrabNumberInfoView = { lazy var grabInfoView: YHGrabNumberInfoView = {
let view = YHGrabNumberInfoView(frame: .zero) let view = YHGrabNumberInfoView(frame: .zero)
view.titleLabel.text = "抢号信息" view.titleLabel.text = "抢号信息"
let items = [YHGrabItem(type: .info, title: "赴港时间:", detail: ""), let items = [YHGrabItem(type: .info, title: "赴港时间:", detail: "", isSingleLine: true),
YHGrabItem(type: .info, title: "香港办证点:", detail: ""), YHGrabItem(type: .info, title: "香港办证点:", detail: "", isSingleLine: false),
YHGrabItem(type: .files, title: "抢号反馈回执:", detail: "", files: []),] YHGrabItem(type: .files, title: "抢号反馈回执:", detail: "", files: []),]
view.updateItems(items) view.updateItems(items)
return view return view
...@@ -51,8 +51,8 @@ class YHHaveGrabbedNumberInfoView: UIView { ...@@ -51,8 +51,8 @@ class YHHaveGrabbedNumberInfoView: UIView {
lazy var intentionInfoView: YHGrabNumberInfoView = { lazy var intentionInfoView: YHGrabNumberInfoView = {
let view = YHGrabNumberInfoView(frame: .zero) let view = YHGrabNumberInfoView(frame: .zero)
view.titleLabel.text = "意向信息" view.titleLabel.text = "意向信息"
let items = [YHGrabItem(type: .info, title: "期望赴港时间:", detail: ""), let items = [YHGrabItem(type: .info, title: "期望赴港时间:", detail: "", isSingleLine: true),
YHGrabItem(type: .info, title: "期望香港办证点:", detail: "")] YHGrabItem(type: .info, title: "期望香港办证点:", detail: "", isSingleLine: false)]
view.updateItems(items) view.updateItems(items)
return view return view
}() }()
......
...@@ -24,14 +24,14 @@ class YHHaveGrabbedNumberListCell: UITableViewCell { ...@@ -24,14 +24,14 @@ class YHHaveGrabbedNumberListCell: UITableViewCell {
listView.membersLabel.text = "成员:\(group.getMemberNames())" listView.membersLabel.text = "成员:\(group.getMemberNames())"
// 抢号信息 // 抢号信息
let items1 = [YHGrabItem(type: .info, title: "赴港时间:", detail: group.goTime), let items1 = [YHGrabItem(type: .info, title: "赴港时间:", detail: group.goTime, isSingleLine:true),
YHGrabItem(type: .info, title: "香港入境处:", detail: group.immigrationOffice), YHGrabItem(type: .info, title: "香港入境处:", detail: group.immigrationOffice, isSingleLine: false),
YHGrabItem(type: .files, title: "抢号反馈回执:", detail: "", files:group.receipts, publicFiles: group.publicReceipts)] YHGrabItem(type: .files, title: "抢号反馈回执:", detail: "", files:group.receipts, publicFiles: group.publicReceipts)]
listView.grabInfoView.updateItems(items1) listView.grabInfoView.updateItems(items1)
// 意向信息 // 意向信息
let items2 = [YHGrabItem(type: .info, title: "期望赴港时间:", detail: "\(group.wantMinTime)~\(group.wantMaxTime)"), let items2 = [YHGrabItem(type: .info, title: "期望赴港时间:", detail: "\(group.wantMinTime) ~ \(group.wantMaxTime)", isSingleLine:true),
YHGrabItem(type: .info, title: "期望香港办证点:", detail: group.wantImmigrationOffice)] YHGrabItem(type: .info, title: "期望香港办证点:", detail: group.wantImmigrationOffice, isSingleLine:false)]
listView.intentionInfoView.updateItems(items2) listView.intentionInfoView.updateItems(items2)
listContainView.addSubview(listView) listContainView.addSubview(listView)
......
...@@ -175,7 +175,7 @@ class YHInfoItemOptionView: UIView { ...@@ -175,7 +175,7 @@ class YHInfoItemOptionView: UIView {
} }
secondBtn.snp.makeConstraints { make in secondBtn.snp.makeConstraints { make in
make.right.equalTo(-18) make.right.equalTo(0)
make.size.equalTo(CGSize(width: 69, height: 32)) make.size.equalTo(CGSize(width: 69, height: 32))
make.centerY.equalTo(titleView) make.centerY.equalTo(titleView)
} }
......
...@@ -52,7 +52,7 @@ class YHInfoItemSelectSheetView: UIView { ...@@ -52,7 +52,7 @@ class YHInfoItemSelectSheetView: UIView {
// 显示placeHolder // 显示placeHolder
detailLabel.text = self.placeHolder detailLabel.text = self.placeHolder
detailLabel.textColor = .placeHolderColor detailLabel.textColor = .placeHolderColor
detailLabel.textAlignment = .right detailLabel.textAlignment = .left
return return
} }
detailLabel.text = detail detailLabel.text = detail
...@@ -63,11 +63,11 @@ class YHInfoItemSelectSheetView: UIView { ...@@ -63,11 +63,11 @@ class YHInfoItemSelectSheetView: UIView {
var isShowDetailOneline:Bool = false { var isShowDetailOneline:Bool = false {
didSet { didSet {
detailLabel.textAlignment = isShowDetailOneline ? .right : .left detailLabel.textAlignment = .left
detailLabel.numberOfLines = isShowDetailOneline ? 1 : 0 detailLabel.numberOfLines = isShowDetailOneline ? 1 : 0
detailLabel.snp.remakeConstraints { make in detailLabel.snp.remakeConstraints { make in
make.top.equalTo(16) make.top.equalTo(16)
make.left.equalTo(titleLabel.snp.right).offset(isShowDetailOneline ? -10 : 0) make.left.equalTo(titleLabel.snp.right).offset(0)
make.right.equalTo(arrowImgView.snp.left) make.right.equalTo(arrowImgView.snp.left)
if isShowDetailOneline { if isShowDetailOneline {
make.height.equalTo(20) make.height.equalTo(20)
......
...@@ -200,6 +200,7 @@ class YHSelectApplicantGroupCell: UITableViewCell { ...@@ -200,6 +200,7 @@ class YHSelectApplicantGroupCell: UITableViewCell {
lazy var locationSelectView: YHInfoItemSelectSheetView = { lazy var locationSelectView: YHInfoItemSelectSheetView = {
let view = YHInfoItemSelectSheetView(frame: .zero) let view = YHInfoItemSelectSheetView(frame: .zero)
view.isShowDetailOneline = false
view.title = "港府办证地点" view.title = "港府办证地点"
view.placeHolder = "请选择" view.placeHolder = "请选择"
view.errorTips = "请选择港府办证地点" view.errorTips = "请选择港府办证地点"
...@@ -381,7 +382,7 @@ extension YHSelectApplicantGroupCell: UICollectionViewDelegate, UICollectionView ...@@ -381,7 +382,7 @@ extension YHSelectApplicantGroupCell: UICollectionViewDelegate, UICollectionView
} }
if selectArr.count == 1, member.isSelected == true, member.id == selectArr[0].id { if selectArr.count == 1, member.isSelected == true, member.id == selectArr[0].id {
// 分组中仅有一个选中用户 且点击的是该用户 // 分组中仅有一个选中用户 且点击的是该用户
YHHUD.flash(message: "一个批次最少需要选中一个申请个人") YHHUD.flash(message: "每一批赴港申请人不可为空,请确保每位申请人都在列")
return return
} }
selectBlock?(member, !member.isSelected, dataModel.itemIndex) selectBlock?(member, !member.isSelected, dataModel.itemIndex)
......
...@@ -336,13 +336,13 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource { ...@@ -336,13 +336,13 @@ extension YHMyViewController : UITableViewDelegate, UITableViewDataSource {
return return
} }
if true { // if true {
let vc = YHCertificateAppointViewController() // let vc = YHCertificateAppointViewController()
vc.orderId = 151296 // vc.orderId = 151090
// 151296 // // 151296
self.navigationController?.pushViewController(vc) // self.navigationController?.pushViewController(vc)
return // return
} //for test dy // } //for test dy
let item: PersonalModuleItem = items[indexPath.row] let item: PersonalModuleItem = items[indexPath.row]
......
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