feat: opt views

This commit is contained in:
2026-03-20 12:46:52 +08:00
parent b2ea79512c
commit d6f72186a3
8 changed files with 73 additions and 18 deletions

View File

@@ -47,10 +47,14 @@ data class GjjImportManifest(
var dgrContactMame: String = "",
// 危险品收货人通讯方式
var dgrContactNumber: String = "",
// 航班日期
var fdate: String = "",
// 航班起始站
var fdep: String = "",
// 航班目的站
var fdest: String = "",
// 航班号
var fno: String = "",
// 航班id
var fid: Long = 0,
// 运费支付方式
@@ -114,6 +118,15 @@ data class GjjImportManifest(
// 重量
var weight: Double = 0.0
) : Serializable {
// 获取航班信息(日期去横杠/航班号)
fun getFlightSplit(): String {
if (fdate != "" && fno != "") {
val (year, mon, day) = fdate.split("-")
return "${year}${mon}${day}/${fno}"
}
return ""
}
// ========== UI扩展字段 ==========
// 选中状态
@Transient

View File

@@ -79,12 +79,20 @@ data class GjjImportTally(
var goodsCn: String = "",
// 品名(英文)
var goodsEn: String = "",
// 放行模式
// 放行模式(代码)
var relMode: String = "",
// 放行模式(名称)
var releaseMode: String = "",
// 放行时间(perDate)
var perDate: String = "",
// 放行时间
var releaseTime: String = "",
// 指令类型(comType)
var comType: String = "",
// 指令类型
var instructionType: String = "",
// 放行备注
var relRemark: String = "",
// 备注
var remark: String = ""
) : Serializable {
@@ -107,5 +115,14 @@ data class GjjImportTally(
// 获取完整运单号
fun getWaybillNo() = "$prefix$no"
// 获取航班信息(日期去横杠/航班号)
fun getFlightSplit(): String {
if (fdate != "" && fno != "") {
val (year, mon, day) = fdate.split("-")
return "${year}${mon}${day}/${fno}"
}
return ""
}
}

View File

@@ -250,6 +250,19 @@ class IntArrAirManifestViewModel : BasePageViewModel() {
launchLoadingCollect({ NetApply.api.getIntArrAirManifestList(listParams) }) {
onSuccess = { result ->
isAllExpanded.value = false
// 如果接口未返回航班日期/航班号,用筛选条件填充
val fd = flightDate.value ?: ""
val fn = flightNo.value ?: ""
result.list?.forEach { airManifest ->
airManifest.maWb?.let {
if (it.fdate.isEmpty()) it.fdate = fd
if (it.fno.isEmpty()) it.fno = fn
}
airManifest.haWbList?.forEach {
if (it.fdate.isEmpty()) it.fdate = fd
if (it.fno.isEmpty()) it.fno = fn
}
}
pageModel.handleListBean(result.toBaseListBean())
}
}

View File

@@ -182,6 +182,18 @@ class IntImpTallyViewModel : BasePageViewModel() {
return
}
// 校验所选单据状态是否为 01已申报
val invalidMaWb = selectedMaWb.firstOrNull { it.status != "01" }
if (invalidMaWb != null) {
showToast("运单 ${invalidMaWb.getWaybillNo()} 理货未申报,不允许删除理货")
return
}
val invalidHaWb = selectedHaWb.firstOrNull { it.status != "01" }
if (invalidHaWb != null) {
showToast("运单 ${invalidHaWb.getWaybillNo()} 理货未申报,不允许删除理货")
return
}
// 从接口获取删除原因列表
launchLoadingCollect({ NetApply.api.getDelReasonList() }) {
onSuccess = { result ->

View File

@@ -61,10 +61,10 @@
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
enable="@{false}"
title='@{"特码"}'
title='@{"航班信息"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@{viewModel.dataBean.spCode}'
value='@{viewModel.dataBean.getFlightSplit()}'
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />

View File

@@ -77,10 +77,10 @@
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
enable="@{false}"
title='@{"特码"}'
title='@{"航班信息"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@{viewModel.dataBean.spCode}'
value='@{viewModel.dataBean.getFlightSplit()}'
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
@@ -312,7 +312,7 @@
title='@{"放行模式"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@{viewModel.dataBean.releaseMode}'
value='@{viewModel.dataBean.relMode}'
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
@@ -322,7 +322,7 @@
title='@{"放行时间"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@{viewModel.dataBean.releaseTime}'
value='@{viewModel.dataBean.perDate}'
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
@@ -332,17 +332,17 @@
title='@{"指令类型"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@{viewModel.dataBean.instructionType}'
value='@{viewModel.dataBean.comType}'
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
enable="@{false}"
title='@{"备注"}'
title='@{"放行备注"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@{viewModel.dataBean.remark}'
value='@{viewModel.dataBean.relRemark}'
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />

View File

@@ -174,7 +174,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="10dp">
<!-- 特码 -->
<!-- 航班信息 -->
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"
android:layout_height="wrap_content"
@@ -184,13 +184,13 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{4}"
android:text="特码" />
completeSpace="@{5}"
android:text="航班信息" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{manifest.spCode ?? ``}" />
android:text="@{manifest.getFlightSplit()}" />
</androidx.appcompat.widget.LinearLayoutCompat>

View File

@@ -181,7 +181,7 @@
android:gravity="center_vertical"
android:orientation="horizontal">
<!-- 特码 -->
<!-- 航班信息 -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
@@ -192,13 +192,13 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{4}"
android:text="特码" />
completeSpace="@{5}"
android:text="航班信息" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{bean.spCode}" />
android:text="@{bean.getFlightSplit()}" />
</LinearLayout>