refactor: 确保舱单编辑页保存时始终传递 no 和 prefix 参数
重构 GjjManifestAddViewModel 的参数构建方式: - 改用 mutableMapOf 手动处理可选字段,替代 removeEmptyOrNull = true - 编辑模式下 mfId、no、prefix 单独追加,不受空字符串过滤影响 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -373,11 +373,10 @@ class GjjManifestAddViewModel : BaseViewModel() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
val params = mapOf(
|
val isModify = pageType.value == DetailsPageType.Modify
|
||||||
"mfId" to if (pageType.value == DetailsPageType.Modify) mfId else null,
|
|
||||||
|
val paramsMap = mutableMapOf<String, Any?>(
|
||||||
"fid" to fid,
|
"fid" to fid,
|
||||||
"no" to if (pageType.value == DetailsPageType.Modify) no else null,
|
|
||||||
"prefix" to if (pageType.value == DetailsPageType.Modify) prefix else null,
|
|
||||||
"wbNo" to waybillNo.value,
|
"wbNo" to waybillNo.value,
|
||||||
"agentCode" to agent.value,
|
"agentCode" to agent.value,
|
||||||
"spCode" to specialCode.value.let { if (it.isNullOrEmpty()) "NOR" else it },
|
"spCode" to specialCode.value.let { if (it.isNullOrEmpty()) "NOR" else it },
|
||||||
@@ -386,19 +385,30 @@ class GjjManifestAddViewModel : BaseViewModel() {
|
|||||||
"pc" to actualNum.value,
|
"pc" to actualNum.value,
|
||||||
"weight" to actualWeight.value,
|
"weight" to actualWeight.value,
|
||||||
"cashWeight" to billingWeight.value,
|
"cashWeight" to billingWeight.value,
|
||||||
"packageType" to packageType.value,
|
|
||||||
"origin" to departure.value,
|
"origin" to departure.value,
|
||||||
"dest" to destination.value,
|
"dest" to destination.value,
|
||||||
"goods" to goodsNameEn.value,
|
"goods" to goodsNameEn.value,
|
||||||
"goodsCn" to goodsNameCn.value,
|
"goodsCn" to goodsNameCn.value,
|
||||||
"awbType" to waybillType.value,
|
"awbType" to waybillType.value,
|
||||||
"cargoType" to goodsType.value,
|
)
|
||||||
"unNumber" to unNumber.value,
|
|
||||||
"remark" to remark.value,
|
// 可选字段:非空时才传
|
||||||
).toRequestBody(removeEmptyOrNull = true)
|
if (!packageType.value.isNullOrEmpty()) paramsMap["packageType"] = packageType.value
|
||||||
|
if (!goodsType.value.isNullOrEmpty()) paramsMap["cargoType"] = goodsType.value
|
||||||
|
if (!unNumber.value.isNullOrEmpty()) paramsMap["unNumber"] = unNumber.value
|
||||||
|
if (!remark.value.isNullOrEmpty()) paramsMap["remark"] = remark.value
|
||||||
|
|
||||||
|
// 编辑模式:必须传 mfId、no、prefix(不受空字符串过滤影响)
|
||||||
|
if (isModify) {
|
||||||
|
paramsMap["mfId"] = mfId
|
||||||
|
paramsMap["no"] = no
|
||||||
|
paramsMap["prefix"] = prefix
|
||||||
|
}
|
||||||
|
|
||||||
|
val params = paramsMap.toRequestBody()
|
||||||
|
|
||||||
launchLoadingCollect({
|
launchLoadingCollect({
|
||||||
if (pageType.value == DetailsPageType.Modify) {
|
if (isModify) {
|
||||||
NetApply.api.gjjManifestUpdate(params)
|
NetApply.api.gjjManifestUpdate(params)
|
||||||
} else {
|
} else {
|
||||||
NetApply.api.gjjManifestInsert(params)
|
NetApply.api.gjjManifestInsert(params)
|
||||||
@@ -406,7 +416,7 @@ class GjjManifestAddViewModel : BaseViewModel() {
|
|||||||
}) {
|
}) {
|
||||||
onSuccess = {
|
onSuccess = {
|
||||||
if (it.verifySuccess()) {
|
if (it.verifySuccess()) {
|
||||||
val successMsg = if (pageType.value == DetailsPageType.Modify) "修改成功" else "保存成功"
|
val successMsg = if (isModify) "修改成功" else "保存成功"
|
||||||
showToast(successMsg)
|
showToast(successMsg)
|
||||||
|
|
||||||
// 发送刷新事件
|
// 发送刷新事件
|
||||||
|
|||||||
Reference in New Issue
Block a user