feat: opt GjcQueryActivity list

This commit is contained in:
2025-12-03 19:56:31 +08:00
parent be0541f522
commit f1abc3ddfc
6 changed files with 163 additions and 139 deletions

View File

@@ -424,7 +424,7 @@ interface Api {
* 接口路径: /IntExpSearch/pageQuery * 接口路径: /IntExpSearch/pageQuery
*/ */
@POST("IntExpSearch/pageQuery") @POST("IntExpSearch/pageQuery")
suspend fun getGjcQueryList(@Body data: RequestBody): BaseResultBean<PageInfo<GjcMaWb>> suspend fun getGjcQueryList(@Body data: RequestBody): PageInfo<GjcMaWb>
/** /**
* 国际出港查询-分页合计统计 * 国际出港查询-分页合计统计

View File

@@ -8,7 +8,8 @@ import com.lukouguoji.gjc.R
import com.lukouguoji.gjc.databinding.DialogGjcQueryFilterBinding import com.lukouguoji.gjc.databinding.DialogGjcQueryFilterBinding
import com.lukouguoji.module_base.base.BaseDialogModel import com.lukouguoji.module_base.base.BaseDialogModel
import com.lxj.xpopup.XPopup import com.lxj.xpopup.XPopup
import dev.utils.app.ScreenUtils import com.lxj.xpopup.enums.PopupPosition
import dev.DevUtils
import dev.utils.app.info.KeyValue import dev.utils.app.info.KeyValue
/** /**
@@ -16,6 +17,7 @@ import dev.utils.app.info.KeyValue
*/ */
class GjcQueryFilterDialogModel( class GjcQueryFilterDialogModel(
val spCode: MutableLiveData<String>, // 特码 val spCode: MutableLiveData<String>, // 特码
val flightNo: MutableLiveData<String>, // 航班号
val dest: MutableLiveData<String>, // 目的港 val dest: MutableLiveData<String>, // 目的港
val awbType: MutableLiveData<String>, // 运单类型 val awbType: MutableLiveData<String>, // 运单类型
val businessType: MutableLiveData<String>, // 业务类型 val businessType: MutableLiveData<String>, // 业务类型
@@ -45,8 +47,14 @@ class GjcQueryFilterDialogModel(
override fun onBuild(builder: XPopup.Builder) { override fun onBuild(builder: XPopup.Builder) {
super.onBuild(builder) super.onBuild(builder)
// 设置抽屉宽度为屏幕宽度的1/3 // 设置从右边弹出
builder.maxWidth((ScreenUtils.getScreenWidth() / 3.0).toInt()) builder.popupPosition(PopupPosition.Right)
// 设置抽屉宽度为 Activity contentView 宽度的1/3横屏长边
val activity = DevUtils.getTopActivity()
val activityWidth = activity.window.decorView.width
builder.maxWidth(activityWidth / 3)
builder.popupWidth(activityWidth / 3)
} }
override fun onDialogCreated(context: Context) { override fun onDialogCreated(context: Context) {
@@ -67,6 +75,7 @@ class GjcQueryFilterDialogModel(
*/ */
fun onResetClick() { fun onResetClick() {
spCode.value = "" spCode.value = ""
flightNo.value = ""
dest.value = "" dest.value = ""
awbType.value = "" awbType.value = ""
businessType.value = "" businessType.value = ""

View File

@@ -52,6 +52,7 @@ class GjcQueryViewModel : BasePageViewModel() {
// ==================== 筛选条件(预留)==================== // ==================== 筛选条件(预留)====================
val spCode = MutableLiveData("") // 特码 val spCode = MutableLiveData("") // 特码
val flightNo = MutableLiveData("") // 航班号
val dest = MutableLiveData("") // 目的港 val dest = MutableLiveData("") // 目的港
val awbType = MutableLiveData("") // 运单类型 val awbType = MutableLiveData("") // 运单类型
val businessType = MutableLiveData("") // 业务类型 val businessType = MutableLiveData("") // 业务类型
@@ -81,6 +82,7 @@ class GjcQueryViewModel : BasePageViewModel() {
fun filterClick() { fun filterClick() {
val filterDialog = GjcQueryFilterDialogModel( val filterDialog = GjcQueryFilterDialogModel(
spCode = spCode, spCode = spCode,
flightNo = flightNo,
dest = dest, dest = dest,
awbType = awbType, awbType = awbType,
businessType = businessType, businessType = businessType,
@@ -106,6 +108,7 @@ class GjcQueryViewModel : BasePageViewModel() {
"wbNo" to waybillNo.value!!.ifEmpty { null }, "wbNo" to waybillNo.value!!.ifEmpty { null },
// 筛选条件(暂未使用) // 筛选条件(暂未使用)
"spCode" to spCode.value!!.ifEmpty { null }, "spCode" to spCode.value!!.ifEmpty { null },
"flightNo" to flightNo.value!!.ifEmpty { null },
"dest" to dest.value!!.ifEmpty { null }, "dest" to dest.value!!.ifEmpty { null },
"awbType" to awbType.value!!.ifEmpty { null }, "awbType" to awbType.value!!.ifEmpty { null },
"businessType" to businessType.value!!.ifEmpty { null }, "businessType" to businessType.value!!.ifEmpty { null },
@@ -121,6 +124,7 @@ class GjcQueryViewModel : BasePageViewModel() {
"wbNo" to waybillNo.value!!.ifEmpty { null }, "wbNo" to waybillNo.value!!.ifEmpty { null },
// 筛选条件 // 筛选条件
"spCode" to spCode.value!!.ifEmpty { null }, "spCode" to spCode.value!!.ifEmpty { null },
"flightNo" to flightNo.value!!.ifEmpty { null },
"dest" to dest.value!!.ifEmpty { null }, "dest" to dest.value!!.ifEmpty { null },
"awbType" to awbType.value!!.ifEmpty { null }, "awbType" to awbType.value!!.ifEmpty { null },
"businessType" to businessType.value!!.ifEmpty { null }, "businessType" to businessType.value!!.ifEmpty { null },
@@ -131,14 +135,11 @@ class GjcQueryViewModel : BasePageViewModel() {
launchLoadingCollect({ launchLoadingCollect({
NetApply.api.getGjcQueryList(listParams) NetApply.api.getGjcQueryList(listParams)
}) { }) {
onSuccess = { result -> onSuccess = { pageInfo ->
val pageInfo = result.data
if (pageInfo != null) {
// ⚠️ 核心使用toBaseListBean()转换PageInfo为BaseListBean // ⚠️ 核心使用toBaseListBean()转换PageInfo为BaseListBean
pageModel.handleListBean(pageInfo.toBaseListBean()) pageModel.handleListBean(pageInfo.toBaseListBean())
} }
} }
}
// 获取统计数据后台调用不显示loading // 获取统计数据后台调用不显示loading
launchCollect({ launchCollect({

View File

@@ -18,11 +18,6 @@
android:background="@color/color_f2" android:background="@color/color_f2"
android:orientation="vertical"> android:orientation="vertical">
<!-- 状态栏 -->
<com.lukouguoji.module_base.ui.weight.StatusView
android:layout_width="wrap_content"
android:layout_height="0dp" />
<!-- 标题栏 --> <!-- 标题栏 -->
<include layout="@layout/title_tool_bar" /> <include layout="@layout/title_tool_bar" />

View File

@@ -2,7 +2,7 @@
<layout xmlns:android="http://schemas.android.com/apk/res/android"> <layout xmlns:android="http://schemas.android.com/apk/res/android">
<data> <data>
<import type="com.lukouguoji.module_base.ui.weight.search.layout.SearchLayoutType" /> <import type="com.lukouguoji.module_base.ui.weight.data.layout.DataLayoutType" />
<variable <variable
name="model" name="model"
@@ -15,6 +15,12 @@
android:background="@color/white" android:background="@color/white"
android:orientation="vertical"> android:orientation="vertical">
<!-- 状态栏占位 -->
<View
android:layout_width="match_parent"
android:layout_height="25dp"
android:background="@color/white" />
<!-- 标题栏 --> <!-- 标题栏 -->
<include layout="@layout/title_tool_bar" /> <include layout="@layout/title_tool_bar" />
@@ -31,51 +37,72 @@
android:orientation="vertical"> android:orientation="vertical">
<!-- 特码 --> <!-- 特码 -->
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
hint='@{"请输入特码"}' hint='@{"请输入特码"}'
type="@{SearchLayoutType.INPUT}" title='@{"特码"}'
value="@={model.spCode}" /> titleLength="@{4}"
type="@{DataLayoutType.INPUT}"
value='@={model.spCode}' />
<!-- 航班号 -->
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
hint='@{"请输入航班号"}'
title='@{"航班号"}'
titleLength="@{4}"
type="@{DataLayoutType.INPUT}"
value='@={model.flightNo}' />
<!-- 目的港 --> <!-- 目的港 -->
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
hint='@{"请输入目的港"}' hint='@{"请输入目的港"}'
type="@{SearchLayoutType.INPUT}" title='@{"目的港"}'
value="@={model.dest}" /> titleLength="@{4}"
type="@{DataLayoutType.INPUT}"
value='@={model.dest}' />
<!-- 运单类型 --> <!-- 运单类型 -->
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
hint='@{"请选择运单类型"}' hint='@{"请选择运单类型"}'
list="@{model.awbTypeList}" list="@{model.awbTypeList}"
type="@{SearchLayoutType.SPINNER}" title='@{"运单类型"}'
value="@={model.awbType}" /> titleLength="@{4}"
type="@{DataLayoutType.SPINNER}"
value='@={model.awbType}' />
<!-- 业务类型 --> <!-- 业务类型 -->
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
hint='@{"请选择业务类型"}' hint='@{"请选择业务类型"}'
list="@{model.businessTypeList}" list="@{model.businessTypeList}"
type="@{SearchLayoutType.SPINNER}" title='@{"业务类型"}'
value="@={model.businessType}" /> titleLength="@{4}"
type="@{DataLayoutType.SPINNER}"
value='@={model.businessType}' />
<!-- 品名(中) --> <!-- 品名(中) -->
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
hint='@{"请输入品名"}' hint='@{"请输入品名"}'
type="@{SearchLayoutType.INPUT}" title='@{"品名(中)"}'
value="@={model.goodsCn}" /> titleLength="@{4}"
type="@{DataLayoutType.INPUT}"
value='@={model.goodsCn}' />
</LinearLayout> </LinearLayout>
@@ -103,7 +130,7 @@
android:textColor="@color/text_normal" android:textColor="@color/text_normal"
android:textSize="16sp" /> android:textSize="16sp" />
<!-- 确认按钮 --> <!-- 搜索按钮 -->
<TextView <TextView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="40dp" android:layout_height="40dp"
@@ -111,7 +138,7 @@
android:background="@drawable/bg_primary_radius_4" android:background="@drawable/bg_primary_radius_4"
android:gravity="center" android:gravity="center"
android:onClick="@{()-> model.onConfirmClick()}" android:onClick="@{()-> model.onConfirmClick()}"
android:text="确认" android:text="搜索"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="16sp" /> android:textSize="16sp" />

View File

@@ -32,7 +32,7 @@
android:layout_marginLeft="10dp" android:layout_marginLeft="10dp"
android:orientation="vertical"> android:orientation="vertical">
<!-- 第一行数据:运单号、航班、件数、重量 --> <!-- 第一行数据:运单号、件数、重量、代理人、入库时间 -->
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
@@ -59,32 +59,11 @@
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
<!-- 航班 -->
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{4}"
android:text="航班:" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{bean.flight}"
tools:text="20240513/MU2026" />
</androidx.appcompat.widget.LinearLayoutCompat>
<!-- 件数 --> <!-- 件数 -->
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.8" android:layout_weight="0.7"
android:gravity="center_vertical"> android:gravity="center_vertical">
<TextView <TextView
@@ -105,7 +84,7 @@
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="0.8"
android:gravity="center_vertical"> android:gravity="center_vertical">
<TextView <TextView
@@ -122,19 +101,11 @@
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<!-- 第二行数据:代理人、特码、目的港、运单类型 -->
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp">
<!-- 代理人 --> <!-- 代理人 -->
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1.2" android:layout_weight="1.0"
android:gravity="center_vertical"> android:gravity="center_vertical">
<TextView <TextView
@@ -151,82 +122,11 @@
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
<!-- 特码 -->
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{4}"
android:text="特码:" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{bean.spCode}"
tools:text="NOR" />
</androidx.appcompat.widget.LinearLayoutCompat>
<!-- 目的港 -->
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.8"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{4}"
android:text="目的港:" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{bean.dest}"
tools:text="PEK" />
</androidx.appcompat.widget.LinearLayoutCompat>
<!-- 运单类型 -->
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{5}"
android:text="运单类型:" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text='@{bean.awbName ?? bean.awbType}'
tools:text="国际出港(直航)" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<!-- 第三行数据:入库时间、离港时间 -->
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp">
<!-- 入库时间 --> <!-- 入库时间 -->
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1.3"
android:gravity="center_vertical"> android:gravity="center_vertical">
<TextView <TextView
@@ -243,11 +143,103 @@
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<!-- 第二行数据:航班、目的港、特码、运单类型、离港时间 -->
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp">
<!-- 航班 -->
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.2"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{4}"
android:text="航班:" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{bean.flight}"
tools:text="20240513/MU2026" />
</androidx.appcompat.widget.LinearLayoutCompat>
<!-- 目的港 -->
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.7"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{4}"
android:text="目的港:" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{bean.dest}"
tools:text="PEK" />
</androidx.appcompat.widget.LinearLayoutCompat>
<!-- 特码 -->
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.7"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{4}"
android:text="特码:" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{bean.spCode}"
tools:text="NOR" />
</androidx.appcompat.widget.LinearLayoutCompat>
<!-- 运单类型 -->
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.1"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{5}"
android:text="运单类型:" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text='@{bean.awbName ?? bean.awbType}'
tools:text="国际出港(直航)" />
</androidx.appcompat.widget.LinearLayoutCompat>
<!-- 离港时间 --> <!-- 离港时间 -->
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1.3"
android:gravity="center_vertical"> android:gravity="center_vertical">
<TextView <TextView