diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestAddViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestAddViewModel.kt index dd74452..4888e58 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestAddViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestAddViewModel.kt @@ -373,11 +373,10 @@ class GjjManifestAddViewModel : BaseViewModel() { return } - val params = mapOf( - "mfId" to if (pageType.value == DetailsPageType.Modify) mfId else null, + val isModify = pageType.value == DetailsPageType.Modify + + val paramsMap = mutableMapOf( "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, "agentCode" to agent.value, "spCode" to specialCode.value.let { if (it.isNullOrEmpty()) "NOR" else it }, @@ -386,19 +385,30 @@ class GjjManifestAddViewModel : BaseViewModel() { "pc" to actualNum.value, "weight" to actualWeight.value, "cashWeight" to billingWeight.value, - "packageType" to packageType.value, "origin" to departure.value, "dest" to destination.value, "goods" to goodsNameEn.value, "goodsCn" to goodsNameCn.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({ - if (pageType.value == DetailsPageType.Modify) { + if (isModify) { NetApply.api.gjjManifestUpdate(params) } else { NetApply.api.gjjManifestInsert(params) @@ -406,7 +416,7 @@ class GjjManifestAddViewModel : BaseViewModel() { }) { onSuccess = { if (it.verifySuccess()) { - val successMsg = if (pageType.value == DetailsPageType.Modify) "修改成功" else "保存成功" + val successMsg = if (isModify) "修改成功" else "保存成功" showToast(successMsg) // 发送刷新事件