feat: 删除原因 dialog for 出港运抵/理货/装载

This commit is contained in:
2025-12-12 13:41:01 +08:00
parent 6b79433557
commit 77d79c4251
11 changed files with 743 additions and 6 deletions

View File

@@ -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()
}
/**

View File

@@ -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()
}
/**

View File

@@ -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()
}
/**