From 67b2dc6d716174299c480fddf73cb78a7b1c1b33 Mon Sep 17 00:00:00 2001 From: YANG JIANKUAN Date: Thu, 26 Mar 2026 20:00:41 +0800 Subject: [PATCH] feat: fix issues --- .../lukouguoji/gjj/activity/IntImpLoadingListActivity.kt | 9 ++++++++- .../gjj/dialog/IntImpModifyStorageDialogModel.kt | 8 +++++++- .../gjj/viewModel/GjjManifestDetailsViewModel.kt | 8 ++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/activity/IntImpLoadingListActivity.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/activity/IntImpLoadingListActivity.kt index 5c1d69f..cbfcf53 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/activity/IntImpLoadingListActivity.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/activity/IntImpLoadingListActivity.kt @@ -108,7 +108,14 @@ class IntImpLoadingListActivity : return } - IntImpModifyStorageDialogModel { dialog -> + // 如果所有选中项库位相同,则预选该库位 + val commonLocation = selectedItems.map { it.locationTally }.distinct().let { + if (it.size == 1) it.first() else "" + } + + IntImpModifyStorageDialogModel( + currentLocationName = commonLocation + ) { dialog -> val locationName = dialog.locationName val locationId = dialog.locationId viewModel.performModifyStorage(locationName, locationId, selectedItems) diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/dialog/IntImpModifyStorageDialogModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/dialog/IntImpModifyStorageDialogModel.kt index c50f61d..a3abae6 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/dialog/IntImpModifyStorageDialogModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/dialog/IntImpModifyStorageDialogModel.kt @@ -16,6 +16,7 @@ import dev.utils.app.info.KeyValue */ class IntImpModifyStorageDialogModel( private val currentLocationId: String = "", + private val currentLocationName: String = "", private val callback: (IntImpModifyStorageDialogModel) -> Unit ) : BaseDialogModel(DIALOG_TYPE_CENTER) { @@ -55,9 +56,14 @@ class IntImpModifyStorageDialogModel( onSuccess = { result -> val list = result.data?.map { it.toKeyValue() } ?: emptyList() locationList.value = list - // 列表加载完成后,预选当前库位 + // 列表加载完成后,预选当前库位(优先按ID匹配,其次按名称匹配) if (currentLocationId.isNotEmpty()) { selectedLocationCode.value = currentLocationId + } else if (currentLocationName.isNotEmpty()) { + val matched = list.find { it.key == currentLocationName } + if (matched != null) { + selectedLocationCode.value = matched.value + } } } onFailed = { _, msg -> diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestDetailsViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestDetailsViewModel.kt index e92500a..5db4d3f 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestDetailsViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestDetailsViewModel.kt @@ -107,6 +107,14 @@ class GjjManifestDetailsViewModel : BaseViewModel(), IGetData { remark.value = data.remark.noNull() date.value = data.storageTime.noNull() + // 初始化下拉控件的选中值(避免 onSelected 回调时机不确定导致值丢失) + agent = data.agent.noNull() + specialCode = data.spCode.noNull() + businessType = data.businessType.noNull() + packageType = data.packagecode.noNull() + goodsType = data.cargoType.noNull() + waybillType = data.awbType.noNull() + DictUtils.getAgentList(addAll = false, checkedValue = data.agent) { agentList.postValue(it) }