fix: 国际进港原始舱单与装机单未选航班时不再请求列表接口
- 原始舱单、装机单搜索时校验航班号必填,为空提示「请输入航班号」 - 装机单仅在父页面传入 fid 时才初始加载,否则等待手动查询 - 进港舱单、装机单 getData 在 fid 为空时直接清空列表与汇总,不发请求; 修复装机单编辑保存后广播刷新事件,导致未选航班的父页面请求接口 并报「业务异常:请先选择航班」 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -68,9 +68,12 @@ class IntImpLoadingListActivity :
|
||||
viewModel.onFlightNoInputComplete()
|
||||
}
|
||||
|
||||
// 初始加载数据
|
||||
// 列表/汇总接口必须带航班(fid),仅在父页面已选航班并传入 fid 时才初始加载;
|
||||
// 否则等用户输入航班号后手动查询,避免后端返回「请先选择航班」
|
||||
if (viewModel.fid.isNotEmpty()) {
|
||||
viewModel.refresh()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示入库操作对话框
|
||||
|
||||
@@ -63,8 +63,13 @@ class IntArrAirManifestViewModel : BasePageViewModel() {
|
||||
|
||||
/**
|
||||
* 搜索按钮点击
|
||||
* 航班号必填,校验通过后再请求列表与汇总(与国际进港舱单页面交互一致)
|
||||
*/
|
||||
fun searchClick() {
|
||||
if (flightNo.value.isNullOrEmpty()) {
|
||||
showToast("请输入航班号")
|
||||
return
|
||||
}
|
||||
refresh()
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载主单下的分单列表(按需加载,加载完成后自动展开)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user