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 e19eca4..97dd640 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 @@ -68,8 +68,11 @@ class IntImpLoadingListActivity : viewModel.onFlightNoInputComplete() } - // 初始加载数据 - viewModel.refresh() + // 列表/汇总接口必须带航班(fid),仅在父页面已选航班并传入 fid 时才初始加载; + // 否则等用户输入航班号后手动查询,避免后端返回「请先选择航班」 + if (viewModel.fid.isNotEmpty()) { + viewModel.refresh() + } } /** diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntArrAirManifestViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntArrAirManifestViewModel.kt index 315e5be..9e975e2 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntArrAirManifestViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntArrAirManifestViewModel.kt @@ -63,8 +63,13 @@ class IntArrAirManifestViewModel : BasePageViewModel() { /** * 搜索按钮点击 + * 航班号必填,校验通过后再请求列表与汇总(与国际进港舱单页面交互一致) */ fun searchClick() { + if (flightNo.value.isNullOrEmpty()) { + showToast("请输入航班号") + return + } refresh() } diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpLoadingListViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpLoadingListViewModel.kt index c687be8..8d7963a 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpLoadingListViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpLoadingListViewModel.kt @@ -139,6 +139,13 @@ class IntImpLoadingListViewModel : BasePageViewModel(), IOnItemClickListener { fun searchClick() { val fdate = flightDate.value val fno = flightNo.value + + // 校验航班号必填(与国际进港舱单页面交互一致) + if (fno.isNullOrEmpty()) { + showToast("请输入航班号") + return + } + if (!fdate.isNullOrEmpty() && !fno.isNullOrEmpty()) { val key = "$fdate-$fno" if (key != lastQueriedFlight || fid.isEmpty()) { @@ -299,6 +306,12 @@ class IntImpLoadingListViewModel : BasePageViewModel(), IOnItemClickListener { * 查询参数与父页面(国际进港舱单)保持一致:使用FID和FDGP */ override fun getData() { + // 接口必须带航班(fid),未选航班时不请求,直接清空列表与汇总 + if (fid.isEmpty()) { + clearListAndTotal() + return + } + // 构建搜索条件(与父页面一致:fid + fdep + wbNo) val filterParams = mapOf( "fid" to fid.ifEmpty { null }, @@ -332,4 +345,16 @@ class IntImpLoadingListViewModel : BasePageViewModel(), IOnItemClickListener { } } } + + /** + * 无航班信息时清空列表与底部汇总,并结束刷新状态 + */ + private fun clearListAndTotal() { + pageModel.handleDataList(emptyList()) + pageModel.haveMore.postValue(false) + totalCount.value = "0" + totalPc.value = "0" + totalWeight.value = "0" + isAllChecked.value = false + } } diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestViewModel.kt index 9fb9abd..444f961 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestViewModel.kt @@ -586,6 +586,13 @@ class IntImpManifestViewModel : BasePageViewModel() { * 通过FID查询列表,而不是直接通过航班号和航班日期 */ override fun getData() { + // 接口必须带航班(fid),未选航班时不请求,直接清空列表与汇总 + // (如子页面装机单修改成功后广播 EVENT_REFRESH,本页尚未查航班也会被触发刷新) + if (fid.isEmpty()) { + clearListAndTotal() + return + } + // 构建搜索条件(使用FID代替fdate/fno) val filterParams = mapOf( "fid" to fid.ifEmpty { null }, @@ -620,6 +627,18 @@ class IntImpManifestViewModel : BasePageViewModel() { } } + /** + * 无航班信息时清空列表与底部汇总,并结束刷新状态 + */ + private fun clearListAndTotal() { + pageModel.handleDataList(emptyList()) + pageModel.haveMore.postValue(false) + totalCount.value = "0" + totalPc.value = "0" + totalWeight.value = "0" + isAllChecked.value = false + } + /** * 加载主单下的分单列表(按需加载,加载完成后自动展开) */