feat: 删除原因 dialog for 出港运抵/理货/装载
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
package com.lukouguoji.gjc.dialog
|
||||
|
||||
import android.content.Context
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.lukouguoji.gjc.R
|
||||
import com.lukouguoji.gjc.databinding.DialogIntExpArriveDeleteBinding
|
||||
import com.lukouguoji.module_base.base.BaseDialogModel
|
||||
import com.lukouguoji.module_base.ktx.verifyNullOrEmpty
|
||||
import dev.utils.app.info.KeyValue
|
||||
|
||||
/**
|
||||
* 国际出港运抵 - 删除申报对话框
|
||||
*/
|
||||
class IntExpArriveDeleteDialogModel(
|
||||
val changeReasonList: List<KeyValue>, // 变更原因列表
|
||||
private val callback: (IntExpArriveDeleteDialogModel) -> Unit
|
||||
) : BaseDialogModel<DialogIntExpArriveDeleteBinding>(DIALOG_TYPE_CENTER) {
|
||||
|
||||
// 变更原因代码(存储的是 code)
|
||||
val changeReason = MutableLiveData("")
|
||||
|
||||
// 联系人姓名
|
||||
val contactName = MutableLiveData("")
|
||||
|
||||
// 联系人电话
|
||||
val contactPhone = MutableLiveData("")
|
||||
|
||||
override fun layoutId(): Int {
|
||||
return R.layout.dialog_int_exp_arrive_delete
|
||||
}
|
||||
|
||||
override fun onDialogCreated(context: Context) {
|
||||
binding.model = this
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认按钮点击
|
||||
*/
|
||||
fun onConfirmClick() {
|
||||
// 验证变更原因
|
||||
if (changeReason.value.verifyNullOrEmpty("请选择变更原因")) {
|
||||
return
|
||||
}
|
||||
|
||||
// 验证联系人姓名
|
||||
if (contactName.value.verifyNullOrEmpty("请输入联系人姓名")) {
|
||||
return
|
||||
}
|
||||
|
||||
// 验证联系人电话
|
||||
if (contactPhone.value.verifyNullOrEmpty("请输入联系人电话")) {
|
||||
return
|
||||
}
|
||||
|
||||
dismiss()
|
||||
callback(this)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.lukouguoji.gjc.dialog
|
||||
|
||||
import android.content.Context
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.lukouguoji.gjc.R
|
||||
import com.lukouguoji.gjc.databinding.DialogIntExpLoadDeleteBinding
|
||||
import com.lukouguoji.module_base.base.BaseDialogModel
|
||||
import com.lukouguoji.module_base.ktx.verifyNullOrEmpty
|
||||
import dev.utils.app.info.KeyValue
|
||||
|
||||
/**
|
||||
* 国际出港装载 - 删除申报对话框
|
||||
*/
|
||||
class IntExpLoadDeleteDialogModel(
|
||||
val changeReasonList: List<KeyValue>, // 变更原因列表
|
||||
private val callback: (IntExpLoadDeleteDialogModel) -> Unit
|
||||
) : BaseDialogModel<DialogIntExpLoadDeleteBinding>(DIALOG_TYPE_CENTER) {
|
||||
|
||||
// 变更原因代码(存储的是 code)
|
||||
val changeReason = MutableLiveData("")
|
||||
|
||||
// 联系人姓名
|
||||
val contactName = MutableLiveData("")
|
||||
|
||||
// 联系人电话
|
||||
val contactPhone = MutableLiveData("")
|
||||
|
||||
override fun layoutId(): Int {
|
||||
return R.layout.dialog_int_exp_load_delete
|
||||
}
|
||||
|
||||
override fun onDialogCreated(context: Context) {
|
||||
binding.model = this
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认按钮点击
|
||||
*/
|
||||
fun onConfirmClick() {
|
||||
// 验证变更原因
|
||||
if (changeReason.value.verifyNullOrEmpty("请选择变更原因")) {
|
||||
return
|
||||
}
|
||||
|
||||
// 验证联系人姓名
|
||||
if (contactName.value.verifyNullOrEmpty("请输入联系人姓名")) {
|
||||
return
|
||||
}
|
||||
|
||||
// 验证联系人电话
|
||||
if (contactPhone.value.verifyNullOrEmpty("请输入联系人电话")) {
|
||||
return
|
||||
}
|
||||
|
||||
dismiss()
|
||||
callback(this)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.lukouguoji.gjc.dialog
|
||||
|
||||
import android.content.Context
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.lukouguoji.gjc.R
|
||||
import com.lukouguoji.gjc.databinding.DialogIntExpTallyDeleteBinding
|
||||
import com.lukouguoji.module_base.base.BaseDialogModel
|
||||
import com.lukouguoji.module_base.ktx.verifyNullOrEmpty
|
||||
import dev.utils.app.info.KeyValue
|
||||
|
||||
/**
|
||||
* 国际出港理货 - 删除申报对话框
|
||||
*/
|
||||
class IntExpTallyDeleteDialogModel(
|
||||
val changeReasonList: List<KeyValue>, // 变更原因列表
|
||||
private val callback: (IntExpTallyDeleteDialogModel) -> Unit
|
||||
) : BaseDialogModel<DialogIntExpTallyDeleteBinding>(DIALOG_TYPE_CENTER) {
|
||||
|
||||
// 变更原因代码(存储的是 code)
|
||||
val changeReason = MutableLiveData("")
|
||||
|
||||
// 联系人姓名
|
||||
val contactName = MutableLiveData("")
|
||||
|
||||
// 联系人电话
|
||||
val contactPhone = MutableLiveData("")
|
||||
|
||||
override fun layoutId(): Int {
|
||||
return R.layout.dialog_int_exp_tally_delete
|
||||
}
|
||||
|
||||
override fun onDialogCreated(context: Context) {
|
||||
binding.model = this
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认按钮点击
|
||||
*/
|
||||
fun onConfirmClick() {
|
||||
// 验证变更原因
|
||||
if (changeReason.value.verifyNullOrEmpty("请选择变更原因")) {
|
||||
return
|
||||
}
|
||||
|
||||
// 验证联系人姓名
|
||||
if (contactName.value.verifyNullOrEmpty("请输入联系人姓名")) {
|
||||
return
|
||||
}
|
||||
|
||||
// 验证联系人电话
|
||||
if (contactPhone.value.verifyNullOrEmpty("请输入联系人电话")) {
|
||||
return
|
||||
}
|
||||
|
||||
dismiss()
|
||||
callback(this)
|
||||
}
|
||||
}
|
||||
@@ -3,8 +3,10 @@ package com.lukouguoji.gjc.viewModel
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.lukouguoji.gjc.R
|
||||
import com.lukouguoji.gjc.dialog.IntExpArriveDeleteDialogModel
|
||||
import com.lukouguoji.gjc.holder.IntExpArriveViewHolder
|
||||
import com.lukouguoji.module_base.base.BasePageViewModel
|
||||
import com.lukouguoji.module_base.bean.GjcDeclareParam
|
||||
import com.lukouguoji.module_base.bean.GjcMaWb
|
||||
import com.lukouguoji.module_base.common.Constant
|
||||
import com.lukouguoji.module_base.common.ConstantEvent
|
||||
@@ -16,6 +18,7 @@ import com.lukouguoji.module_base.ktx.launchLoadingCollect
|
||||
import com.lukouguoji.module_base.ktx.showToast
|
||||
import com.lukouguoji.module_base.ktx.toRequestBody
|
||||
import com.lukouguoji.module_base.model.ScanModel
|
||||
import dev.utils.app.info.KeyValue
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
@@ -114,7 +117,48 @@ class IntExpArriveViewModel : BasePageViewModel() {
|
||||
* 删除申报
|
||||
*/
|
||||
fun deleteDeclareClick() {
|
||||
val list = pageModel.rv?.commonAdapter()?.items as? List<GjcMaWb> ?: return
|
||||
val selectedItems = list.filter { it.isSelected }
|
||||
|
||||
// if (selectedItems.isEmpty()) {
|
||||
// showToast("请选择要删除申报的记录")
|
||||
// return
|
||||
// }
|
||||
|
||||
// 准备变更原因列表(示例数据,可根据实际需求调整)
|
||||
val changeReasonList = listOf(
|
||||
KeyValue("01", "运单号错误"),
|
||||
KeyValue("02", "件数或重量错误"),
|
||||
KeyValue("03", "货物信息错误"),
|
||||
KeyValue("04", "航班信息错误"),
|
||||
KeyValue("99", "其他原因")
|
||||
)
|
||||
|
||||
// 创建并显示弹框
|
||||
val dialog = IntExpArriveDeleteDialogModel(changeReasonList) { dialogModel ->
|
||||
// 弹框确认后的回调
|
||||
val param = GjcDeclareParam(
|
||||
dcode = dialogModel.changeReason.value,
|
||||
dcontactsName = dialogModel.contactName.value,
|
||||
dcontactsTel = dialogModel.contactPhone.value,
|
||||
maWbList = selectedItems
|
||||
)
|
||||
|
||||
val requestData = param.toRequestBody()
|
||||
|
||||
// 调用删除接口
|
||||
launchLoadingCollect({ NetApply.api.deleteArriveDeclare(requestData) }) {
|
||||
onSuccess = {
|
||||
showToast("删除申报成功")
|
||||
viewModelScope.launch {
|
||||
FlowBus.with<String>(ConstantEvent.EVENT_REFRESH).emit("refresh")
|
||||
}
|
||||
refresh()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dialog.show()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.lukouguoji.gjc.viewModel
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.lukouguoji.gjc.R
|
||||
import com.lukouguoji.gjc.dialog.IntExpLoadDeleteDialogModel
|
||||
import com.lukouguoji.gjc.holder.IntExpLoadViewHolder
|
||||
import com.lukouguoji.module_base.base.BasePageViewModel
|
||||
import com.lukouguoji.module_base.bean.GjcCheckInPage
|
||||
@@ -18,6 +19,7 @@ import com.lukouguoji.module_base.ktx.launchLoadingCollect
|
||||
import com.lukouguoji.module_base.ktx.showToast
|
||||
import com.lukouguoji.module_base.ktx.toRequestBody
|
||||
import com.lukouguoji.module_base.model.ScanModel
|
||||
import dev.utils.app.info.KeyValue
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
@@ -141,10 +143,50 @@ class IntExpLoadViewModel : BasePageViewModel() {
|
||||
|
||||
/**
|
||||
* 删除申报 (批量操作)
|
||||
* TODO: 待实现
|
||||
*/
|
||||
fun deleteLoad() {
|
||||
// 暂不实现,预留接口
|
||||
val list = pageModel.rv?.commonAdapter()?.items as? List<GjcExportLoad> ?: return
|
||||
val selectedItems = list.filter { it.isSelected }
|
||||
|
||||
// if (selectedItems.isEmpty()) {
|
||||
// showToast("请选择要删除申报的记录")
|
||||
// return
|
||||
// }
|
||||
|
||||
// 准备变更原因列表(示例数据,可根据实际需求调整)
|
||||
val changeReasonList = listOf(
|
||||
KeyValue("01", "运单号错误"),
|
||||
KeyValue("02", "件数或重量错误"),
|
||||
KeyValue("03", "货物信息错误"),
|
||||
KeyValue("04", "航班信息错误"),
|
||||
KeyValue("99", "其他原因")
|
||||
)
|
||||
|
||||
// 创建并显示弹框
|
||||
val dialog = IntExpLoadDeleteDialogModel(changeReasonList) { dialogModel ->
|
||||
// 弹框确认后的回调
|
||||
val param = GjcDeclareParam(
|
||||
dcode = dialogModel.changeReason.value,
|
||||
dcontactsName = dialogModel.contactName.value,
|
||||
dcontactsTel = dialogModel.contactPhone.value,
|
||||
loadList = selectedItems
|
||||
)
|
||||
|
||||
val requestData = param.toRequestBody()
|
||||
|
||||
// 调用删除接口
|
||||
launchLoadingCollect({ NetApply.api.deleteLoadDeclare(requestData) }) {
|
||||
onSuccess = {
|
||||
showToast("删除申报成功")
|
||||
viewModelScope.launch {
|
||||
FlowBus.with<String>(ConstantEvent.EVENT_REFRESH).emit("refresh")
|
||||
}
|
||||
refresh()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dialog.show()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -3,9 +3,11 @@ package com.lukouguoji.gjc.viewModel
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.lukouguoji.gjc.R
|
||||
import com.lukouguoji.gjc.dialog.IntExpTallyDeleteDialogModel
|
||||
import com.lukouguoji.gjc.holder.IntExpTallyViewHolder
|
||||
import com.lukouguoji.module_base.base.BasePageViewModel
|
||||
import com.lukouguoji.module_base.bean.GjcCheckInPage
|
||||
import com.lukouguoji.module_base.bean.GjcDeclareParam
|
||||
import com.lukouguoji.module_base.bean.GjcMaWb
|
||||
import com.lukouguoji.module_base.common.Constant
|
||||
import com.lukouguoji.module_base.common.ConstantEvent
|
||||
@@ -17,6 +19,7 @@ import com.lukouguoji.module_base.ktx.launchLoadingCollect
|
||||
import com.lukouguoji.module_base.ktx.showToast
|
||||
import com.lukouguoji.module_base.ktx.toRequestBody
|
||||
import com.lukouguoji.module_base.model.ScanModel
|
||||
import dev.utils.app.info.KeyValue
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
@@ -138,10 +141,50 @@ class IntExpTallyViewModel : BasePageViewModel() {
|
||||
|
||||
/**
|
||||
* 删除申报 (批量操作)
|
||||
* TODO: 待实现
|
||||
*/
|
||||
fun deleteTally() {
|
||||
// 暂不实现,预留接口
|
||||
val list = pageModel.rv?.commonAdapter()?.items as? List<GjcMaWb> ?: return
|
||||
val selectedItems = list.filter { it.isSelected }
|
||||
|
||||
// if (selectedItems.isEmpty()) {
|
||||
// showToast("请选择要删除申报的记录")
|
||||
// return
|
||||
// }
|
||||
|
||||
// 准备变更原因列表(示例数据,可根据实际需求调整)
|
||||
val changeReasonList = listOf(
|
||||
KeyValue("01", "运单号错误"),
|
||||
KeyValue("02", "件数或重量错误"),
|
||||
KeyValue("03", "货物信息错误"),
|
||||
KeyValue("04", "航班信息错误"),
|
||||
KeyValue("99", "其他原因")
|
||||
)
|
||||
|
||||
// 创建并显示弹框
|
||||
val dialog = IntExpTallyDeleteDialogModel(changeReasonList) { dialogModel ->
|
||||
// 弹框确认后的回调
|
||||
val param = GjcDeclareParam(
|
||||
dcode = dialogModel.changeReason.value,
|
||||
dcontactsName = dialogModel.contactName.value,
|
||||
dcontactsTel = dialogModel.contactPhone.value,
|
||||
maWbList = selectedItems
|
||||
)
|
||||
|
||||
val requestData = param.toRequestBody()
|
||||
|
||||
// 调用删除接口
|
||||
launchLoadingCollect({ NetApply.api.deleteTallyDeclare(requestData) }) {
|
||||
onSuccess = {
|
||||
showToast("删除申报成功")
|
||||
viewModelScope.launch {
|
||||
FlowBus.with<String>(ConstantEvent.EVENT_REFRESH).emit("refresh")
|
||||
}
|
||||
refresh()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dialog.show()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user