|
|
@@ -136,19 +136,18 @@ class SelectMemberFragment : BaseFragment<FragmentSelectMemeberBinding>() {
|
|
|
return@setDebouncedClickListener
|
|
|
}
|
|
|
if (isLockerSelect) {
|
|
|
- selectedLockerData.find { it.jobTicketGroupInfo.groupId == viewModel.currentSelectGroup?.groupId }?.jobTicketGroupMemberList?.clear()
|
|
|
- selectedLockerData.find { it.jobTicketGroupInfo.groupId == viewModel.currentSelectGroup?.groupId }?.jobTicketGroupMemberList?.add(
|
|
|
- item
|
|
|
- )
|
|
|
- binding.allUserRv.models =
|
|
|
- viewModel.userData.filter { it.roleKeys.contains(RoleEnum.JTLOCKER.roleKey) }
|
|
|
- .filter {
|
|
|
- it.userId !in selectedLockerData.flatMap { it.jobTicketGroupMemberList }
|
|
|
- .map { it.userId }
|
|
|
- }
|
|
|
+ selectedLockerData.find {
|
|
|
+ it.jobTicketGroupMemberList.map { it.userId }.contains(item.userId)
|
|
|
+ }?.jobTicketGroupMemberList?.removeIf { it.userId == item.userId }
|
|
|
+ item.isSelected = false
|
|
|
} else {
|
|
|
item.isSelected = false
|
|
|
selectedColockerData.removeIf { it.userId == item.userId }
|
|
|
+ binding.allUserRv.models =
|
|
|
+ viewModel.userData.filter { it.roleKeys.contains(RoleEnum.JTCOLOCKER.roleKey) }
|
|
|
+ .filter {
|
|
|
+ it.userId !in selectedColockerData.map { it.userId }
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
item.isSelected = true
|
|
|
@@ -162,14 +161,13 @@ class SelectMemberFragment : BaseFragment<FragmentSelectMemeberBinding>() {
|
|
|
selectedLockerData.find { it.jobTicketGroupInfo.groupId == viewModel.currentSelectGroup?.groupId }?.jobTicketGroupMemberList?.add(
|
|
|
item
|
|
|
)
|
|
|
+ } else {
|
|
|
+ selectedColockerData.add(item)
|
|
|
binding.allUserRv.models =
|
|
|
- viewModel.userData.filter { it.roleKeys.contains(RoleEnum.JTLOCKER.roleKey) }
|
|
|
+ viewModel.userData.filter { it.roleKeys.contains(RoleEnum.JTCOLOCKER.roleKey) }
|
|
|
.filter {
|
|
|
- it.userId !in selectedLockerData.flatMap { it.jobTicketGroupMemberList }
|
|
|
- .map { it.userId }
|
|
|
+ it.userId !in selectedColockerData.map { it.userId }
|
|
|
}
|
|
|
- } else {
|
|
|
- selectedColockerData.add(item)
|
|
|
}
|
|
|
}
|
|
|
if (isLockerSelect) {
|
|
|
@@ -185,6 +183,21 @@ class SelectMemberFragment : BaseFragment<FragmentSelectMemeberBinding>() {
|
|
|
val itemBinding = holder.getBinding<ItemLockerGroupBinding>()
|
|
|
val item = holder.getModel<JobTicketGroupDataVo<JobUserVo>>()
|
|
|
itemBinding.groupName.text = item.jobTicketGroupInfo.groupName
|
|
|
+ itemBinding.groupLockerRv.setDebouncedClickListener {
|
|
|
+ isLockerSelect = true
|
|
|
+ itemBinding.groupTitleLayout.isSelected = !itemBinding.groupTitleLayout.isSelected
|
|
|
+ itemBinding.groupName.isSelected = itemBinding.groupTitleLayout.isSelected
|
|
|
+ viewModel.currentSelectGroup = item.jobTicketGroupInfo
|
|
|
+ binding.selectMemberTip.text =
|
|
|
+ getString(R.string.select_locker_tip, viewModel.currentSelectGroup?.groupName ?: "")
|
|
|
+ binding.allUserRv.models =
|
|
|
+ viewModel.userData.filter { it.roleKeys.contains(RoleEnum.JTLOCKER.roleKey) }
|
|
|
+ .onEach {
|
|
|
+ it.isSelected == item.jobTicketGroupMemberList.map { selectedLocker -> selectedLocker.userId }
|
|
|
+ .contains(it.userId)
|
|
|
+ }
|
|
|
+ adapter.notifyDataSetChanged()
|
|
|
+ }
|
|
|
itemBinding.groupTitleLayout.setDebouncedClickListener {
|
|
|
isLockerSelect = true
|
|
|
itemBinding.groupTitleLayout.isSelected = !itemBinding.groupTitleLayout.isSelected
|
|
|
@@ -194,8 +207,9 @@ class SelectMemberFragment : BaseFragment<FragmentSelectMemeberBinding>() {
|
|
|
getString(R.string.select_locker_tip, viewModel.currentSelectGroup?.groupName ?: "")
|
|
|
binding.allUserRv.models =
|
|
|
viewModel.userData.filter { it.roleKeys.contains(RoleEnum.JTLOCKER.roleKey) }
|
|
|
- .filter {
|
|
|
- it.userId !in selectedLockerData.flatMap { it.jobTicketGroupMemberList }.map { it.userId }
|
|
|
+ .onEach {
|
|
|
+ it.isSelected == item.jobTicketGroupMemberList.map { selectedLocker -> selectedLocker.userId }
|
|
|
+ .contains(it.userId)
|
|
|
}
|
|
|
adapter.notifyDataSetChanged()
|
|
|
}
|
|
|
@@ -231,14 +245,9 @@ class SelectMemberFragment : BaseFragment<FragmentSelectMemeberBinding>() {
|
|
|
PopTip.build().tip(com.grkj.ui_base.R.string.can_not_remove_current_locker)
|
|
|
return@setDebouncedClickListener
|
|
|
}
|
|
|
- selectedLockerData.find { it.jobTicketGroupInfo.groupId == groupData.groupId }?.jobTicketGroupMemberList?.clear()
|
|
|
+ selectedLockerData.find { it.jobTicketGroupInfo.groupId == groupData.groupId }?.jobTicketGroupMemberList?.removeIf { it.userId == item.userId }
|
|
|
viewModel.userData.find { it.userId == item.userId }?.isSelected = false
|
|
|
adapter.notifyDataSetChanged()
|
|
|
- binding.allUserRv.models =
|
|
|
- viewModel.userData.filter {
|
|
|
- it.roleKeys.contains(RoleEnum.JTLOCKER.roleKey) && it.userId !in selectedLockerData.flatMap { it.jobTicketGroupMemberList }
|
|
|
- .map { it.userId }
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -262,7 +271,11 @@ class SelectMemberFragment : BaseFragment<FragmentSelectMemeberBinding>() {
|
|
|
selectedColockerData.removeIf { it.userId == item.userId }
|
|
|
viewModel.userData.find { it.userId == item.userId }?.isSelected = false
|
|
|
adapter.notifyDataSetChanged()
|
|
|
- binding.allUserRv.adapter?.notifyDataSetChanged()
|
|
|
+ binding.allUserRv.models =
|
|
|
+ viewModel.userData.filter { it.roleKeys.contains(RoleEnum.JTCOLOCKER.roleKey) }
|
|
|
+ .filter {
|
|
|
+ it.userId !in selectedColockerData.map { it.userId }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -273,8 +286,14 @@ class SelectMemberFragment : BaseFragment<FragmentSelectMemeberBinding>() {
|
|
|
binding.lockerRv.models = selectedLockerData
|
|
|
binding.allUserRv.models =
|
|
|
viewModel.userData.filter {
|
|
|
- it.roleKeys.contains(RoleEnum.JTLOCKER.roleKey) && it.userId !in selectedLockerData.flatMap { it.jobTicketGroupMemberList }
|
|
|
- .map { it.userId }
|
|
|
+ it.roleKeys.contains(RoleEnum.JTLOCKER.roleKey)
|
|
|
+ }.apply {
|
|
|
+ forEach {
|
|
|
+ it.isSelected =
|
|
|
+ it.userId in selectedLockerData.flatMap { it.jobTicketGroupMemberList }
|
|
|
+ .map { it.userId }
|
|
|
+ }
|
|
|
+ sortedBy { it.isSelected }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -283,12 +302,7 @@ class SelectMemberFragment : BaseFragment<FragmentSelectMemeberBinding>() {
|
|
|
binding.selectMemberTip.text = CommonUtils.getStr(R.string.select_colocker_tip)
|
|
|
binding.colockerRv.models = selectedColockerData
|
|
|
binding.allUserRv.models =
|
|
|
- viewModel.userData.filter { it.roleKeys.contains(RoleEnum.JTCOLOCKER.roleKey) }.apply {
|
|
|
- forEach {
|
|
|
- it.isSelected = it.userId in selectedColockerData.map { it.userId }
|
|
|
- }
|
|
|
- sortedBy { it.isSelected }
|
|
|
- }
|
|
|
+ viewModel.userData.filter { it.roleKeys.contains(RoleEnum.JTCOLOCKER.roleKey) && it.userId in selectedColockerData.map { it.userId } }
|
|
|
}
|
|
|
|
|
|
override fun initData() {
|
|
|
@@ -308,7 +322,10 @@ class SelectMemberFragment : BaseFragment<FragmentSelectMemeberBinding>() {
|
|
|
if (selectedLockerData.isNotEmpty()) {
|
|
|
viewModel.currentSelectGroup = selectedLockerData.firstOrNull()?.jobTicketGroupInfo
|
|
|
binding.selectMemberTip.text =
|
|
|
- getString(R.string.select_locker_tip, viewModel.currentSelectGroup?.groupName ?: "")
|
|
|
+ getString(
|
|
|
+ R.string.select_locker_tip,
|
|
|
+ viewModel.currentSelectGroup?.groupName ?: ""
|
|
|
+ )
|
|
|
}
|
|
|
}
|
|
|
if (GlobalDataTempStore.getInstance()
|