From 1d2b11bfd20232990b0819c16cd4234e42914ac0 Mon Sep 17 00:00:00 2001 From: YANG JIANKUAN Date: Wed, 15 Apr 2026 14:50:28 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A1=AE=E4=BF=9D=E8=88=B1?= =?UTF-8?q?=E5=8D=95=E7=BC=96=E8=BE=91=E9=A1=B5=E4=BF=9D=E5=AD=98=E6=97=B6?= =?UTF-8?q?=E5=A7=8B=E7=BB=88=E4=BC=A0=E9=80=92=20no=20=E5=92=8C=20prefix?= =?UTF-8?q?=20=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构 GjjManifestAddViewModel 的参数构建方式: - 改用 mutableMapOf 手动处理可选字段,替代 removeEmptyOrNull = true - 编辑模式下 mfId、no、prefix 单独追加,不受空字符串过滤影响 Co-Authored-By: Claude Opus 4.6 --- .../gjj/viewModel/GjjManifestAddViewModel.kt | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) 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) // 发送刷新事件