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
|
||||
}
|
||||
|
||||
val params = mapOf(
|
||||
"mfId" to if (pageType.value == DetailsPageType.Modify) mfId else null,
|
||||
val isModify = pageType.value == DetailsPageType.Modify
|
||||
|
||||
val paramsMap = mutableMapOf<String, Any?>(
|
||||
"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)
|
||||
|
||||
// 发送刷新事件
|
||||
|
||||
Reference in New Issue
Block a user