fix: 国际进港原始舱单与装机单未选航班时不再请求列表接口
- 原始舱单、装机单搜索时校验航班号必填,为空提示「请输入航班号」 - 装机单仅在父页面传入 fid 时才初始加载,否则等待手动查询 - 进港舱单、装机单 getData 在 fid 为空时直接清空列表与汇总,不发请求; 修复装机单编辑保存后广播刷新事件,导致未选航班的父页面请求接口 并报「业务异常:请先选择航班」 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -68,8 +68,11 @@ class IntImpLoadingListActivity :
|
|||||||
viewModel.onFlightNoInputComplete()
|
viewModel.onFlightNoInputComplete()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 初始加载数据
|
// 列表/汇总接口必须带航班(fid),仅在父页面已选航班并传入 fid 时才初始加载;
|
||||||
viewModel.refresh()
|
// 否则等用户输入航班号后手动查询,避免后端返回「请先选择航班」
|
||||||
|
if (viewModel.fid.isNotEmpty()) {
|
||||||
|
viewModel.refresh()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -63,8 +63,13 @@ class IntArrAirManifestViewModel : BasePageViewModel() {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 搜索按钮点击
|
* 搜索按钮点击
|
||||||
|
* 航班号必填,校验通过后再请求列表与汇总(与国际进港舱单页面交互一致)
|
||||||
*/
|
*/
|
||||||
fun searchClick() {
|
fun searchClick() {
|
||||||
|
if (flightNo.value.isNullOrEmpty()) {
|
||||||
|
showToast("请输入航班号")
|
||||||
|
return
|
||||||
|
}
|
||||||
refresh()
|
refresh()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -139,6 +139,13 @@ class IntImpLoadingListViewModel : BasePageViewModel(), IOnItemClickListener {
|
|||||||
fun searchClick() {
|
fun searchClick() {
|
||||||
val fdate = flightDate.value
|
val fdate = flightDate.value
|
||||||
val fno = flightNo.value
|
val fno = flightNo.value
|
||||||
|
|
||||||
|
// 校验航班号必填(与国际进港舱单页面交互一致)
|
||||||
|
if (fno.isNullOrEmpty()) {
|
||||||
|
showToast("请输入航班号")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (!fdate.isNullOrEmpty() && !fno.isNullOrEmpty()) {
|
if (!fdate.isNullOrEmpty() && !fno.isNullOrEmpty()) {
|
||||||
val key = "$fdate-$fno"
|
val key = "$fdate-$fno"
|
||||||
if (key != lastQueriedFlight || fid.isEmpty()) {
|
if (key != lastQueriedFlight || fid.isEmpty()) {
|
||||||
@@ -299,6 +306,12 @@ class IntImpLoadingListViewModel : BasePageViewModel(), IOnItemClickListener {
|
|||||||
* 查询参数与父页面(国际进港舱单)保持一致:使用FID和FDGP
|
* 查询参数与父页面(国际进港舱单)保持一致:使用FID和FDGP
|
||||||
*/
|
*/
|
||||||
override fun getData() {
|
override fun getData() {
|
||||||
|
// 接口必须带航班(fid),未选航班时不请求,直接清空列表与汇总
|
||||||
|
if (fid.isEmpty()) {
|
||||||
|
clearListAndTotal()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// 构建搜索条件(与父页面一致:fid + fdep + wbNo)
|
// 构建搜索条件(与父页面一致:fid + fdep + wbNo)
|
||||||
val filterParams = mapOf(
|
val filterParams = mapOf(
|
||||||
"fid" to fid.ifEmpty { null },
|
"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查询列表,而不是直接通过航班号和航班日期
|
* 通过FID查询列表,而不是直接通过航班号和航班日期
|
||||||
*/
|
*/
|
||||||
override fun getData() {
|
override fun getData() {
|
||||||
|
// 接口必须带航班(fid),未选航班时不请求,直接清空列表与汇总
|
||||||
|
// (如子页面装机单修改成功后广播 EVENT_REFRESH,本页尚未查航班也会被触发刷新)
|
||||||
|
if (fid.isEmpty()) {
|
||||||
|
clearListAndTotal()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// 构建搜索条件(使用FID代替fdate/fno)
|
// 构建搜索条件(使用FID代替fdate/fno)
|
||||||
val filterParams = mapOf(
|
val filterParams = mapOf(
|
||||||
"fid" to fid.ifEmpty { null },
|
"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