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

// 选中状态

parent 3c48607c
......@@ -14,8 +14,11 @@ class YHCertificateAppointViewController: YHBaseViewController {
var sections: [[YHAppointItem]] = []
// 第一个section数据组
var items1: [YHAppointItem] = []
// 只装选人的cell
var items2: [YHAppointItem] = []
// 只装抢号中、已抢号
var items3: [YHAppointItem] = []
var waitList: [YHAppointMemberGroupModel] = []
var successList: [YHAppointMemberGroupModel] = []
......@@ -103,7 +106,8 @@ class YHCertificateAppointViewController: YHBaseViewController {
sections.removeAll()
items1.removeAll()
items2.removeAll()
items3.removeAll()
// *赴港办证
let item1 = YHAppointItem(type: .goHKMakeCertificate)
items1.append(item1)
......@@ -132,7 +136,7 @@ class YHCertificateAppointViewController: YHBaseViewController {
if self.isAllMembersGo { // 申请人统一赴港激活签证
let item5 = YHAppointItem(type: .confirmGoHKInfo)
let group = YHSelectGroupMemberModel()
group.arr = waitAppointMembers
group.arr = waitAppointMembers.deepCopy()
item5.model = group
item5.placeList = self.viewModel.placeList
items2.append(item5)
......@@ -140,11 +144,16 @@ class YHCertificateAppointViewController: YHBaseViewController {
} else { // 申请人不是统一赴港激活签证
let item6 = YHAppointItem(type: .confirmGoHKInfo)
item6.itemIndex = 0
let model1 = YHSelectGroupMemberModel()
model1.arr = waitAppointMembers
item6.model = model1
let group1 = YHSelectGroupMemberModel()
group1.arr = waitAppointMembers.deepCopy().map {
var member = $0
member.isSelected = true
return member
}
item6.model = group1
item6.placeList = self.viewModel.placeList
items2.append(item6)
}
} else { // 有预约过的人员
......@@ -158,26 +167,33 @@ class YHCertificateAppointViewController: YHBaseViewController {
// 赴港办理抢号中批次
if self.waitList.count > 0 {
let item6 = YHAppointItem(type: .grabingNumberBatch)
items2.append(item6)
items3.append(item6)
}
// 赴港办理已抢号批次
if self.successList.count > 0 {
let item7 = YHAppointItem(type: .haveGrabedNumberBatch)
items2.append(item7)
items3.append(item7)
}
}
refreshData()
}
func refreshData() {
sections.removeAll()
if items1.count > 0 {
sections.append(items1)
}
if items2.count > 0 {
sections.append(items2)
}
if items3.count > 0 {
sections.append(items3)
}
self.tableView.reloadData()
}
}
......@@ -284,6 +300,11 @@ extension YHCertificateAppointViewController: UITableViewDelegate, UITableViewDa
let cell = tableView.dequeueReusableCell(withIdentifier: YHSelectApplicantGroupCell.cellReuseIdentifier, for: indexPath) as! YHSelectApplicantGroupCell
cell.dataModel = arr[indexPath.row]
cell.isShowSelectUserView = !self.isAllMembersGo
cell.selectBlock = {
[weak self] member, isSelect, groupIndex in
guard let self = self else { return }
self.selectMember(member, select: isSelect, groupLevel: groupIndex)
}
return cell
}
......@@ -420,3 +441,71 @@ extension YHCertificateAppointViewController {
}
}
extension YHCertificateAppointViewController {
// memberId 申请人id
// select 点击选择
// groupLevel 是分的第几组 从0开始计数
func selectMember(_ currentMember: YHHKMemberModel, select:Bool, groupLevel:Int) {
// 获取当前批的成员组
var currentMembers:[YHHKMemberModel] = []
// 先改变点击当前批的选择状态
if 0 <= groupLevel, groupLevel < items2.count {
let item = items2[groupLevel]
if let members = item.model?.arr {
currentMembers = members
for member in members {
if member.id == currentMember.id {
member.isSelected = select
}
}
}
}
if !select { // 如果操作是取消
// 如果操作的当前批次是最后一批,则需要分新批次
if groupLevel == items2.count-1 {
// 进行分批
let newItem = YHAppointItem(type: .confirmGoHKInfo)
// 批次+1
newItem.itemIndex = groupLevel+1
let group1 = YHSelectGroupMemberModel()
// 找出上一批未选中的人
let needMembers = currentMembers.filter {
return $0.isSelected == false
}
// 在下一批中默认全选中
group1.arr = needMembers.deepCopy().map {
let item = $0
item.isSelected = true
return item
}
newItem.model = group1
newItem.placeList = self.viewModel.placeList
items2.append(newItem)
} else { // 如果操作的当前批次不是最后一批 需要更新后面几批的选中状态
let nextGroupIndex = groupLevel+1
let newMember = currentMember.copy() as! YHHKMemberModel
newMember.isSelected = true
if 0 <= groupLevel, groupLevel < items2.count {
let item = items2[nextGroupIndex]
if var members = item.model?.arr {
members.append(newMember)
item.model?.arr = members
}
}
}
} else { // 如果操作是选中
}
refreshData()
}
}
......@@ -290,6 +290,9 @@ extension YHSelectApplicantGroupCell: UICollectionViewDelegate, UICollectionView
if let dataModel = self.dataModel, let model = dataModel.model {
if 0 <= indexPath.item && indexPath.item < model.arr.count {
let member = model.arr[indexPath.item]
if model.arr.count == 1, member.isSelected { // 分组中有且仅有一个且原状态是选中
return
}
selectBlock?(member, !member.isSelected, dataModel.itemIndex)
}
}
......
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