Compare commits

...

3 Commits

Author SHA1 Message Date
48ab9d6e2e style: 统一进港页面结束日期筛选文案并优化 PadSearchLayout 防换行
- 进港查询/出库/提取记录页第二个日期筛选 hint 统一为"请选择结束 xx 日期"
- PadSearchLayout 内部 EditText/TextView 增加 singleLine + ellipsize=end,
  textSize 14sp 调为 13sp,避免长 hint 换行、布局被撑高

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-14 13:56:04 +08:00
3a9f7f07e6 style: 国际事故签证列表项与筛选项左对齐
列表项卡片外层 marginHorizontal 由 15dp 调整为 5dp,
使卡片左右边缘与第一个筛选项视觉对齐(屏幕 15dp 处),
保持左右边距对称。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-14 13:16:11 +08:00
5750ab2036 feat: 进港舱单新增总重量字段并修正过磅记录代理显示
- 进港舱单 Bean 增加 totalWeight 字段
- 新增/详情页表单加入"总重量"项并重排布局,备注移至 UN 编号同行
- 出港过磅记录列表代理列由 agentCode 改为 agentName 显示

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-14 13:02:46 +08:00
11 changed files with 121 additions and 75 deletions

View File

@@ -109,6 +109,8 @@ data class GjjImportManifest(
var splitFlag: String = "", var splitFlag: String = "",
// 总件数 // 总件数
var totalPc: Long = 0, var totalPc: Long = 0,
// 总重量
var totalWeight: Double = 0.0,
// 危险品编号 // 危险品编号
var unNumber: String = "", var unNumber: String = "",
// 体积 // 体积

View File

@@ -19,6 +19,7 @@ data class GjjManifest(
var fid: Long = 0, // FID var fid: Long = 0, // FID
var pc: Long = 0, // 件数 var pc: Long = 0, // 件数
var totalPc: Long = 0, // 总件数 var totalPc: Long = 0, // 总件数
var totalWeight: Double = 0.0, // 总重量
var weight: Double = 0.0, // 重量 var weight: Double = 0.0, // 重量
var volume: Double = 0.0, // 体积 var volume: Double = 0.0, // 体积
var goods: String = "", // 品名(英) var goods: String = "", // 品名(英)

View File

@@ -15,11 +15,12 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1" android:layout_weight="1"
android:background="@null" android:background="@null"
android:ellipsize="end"
android:paddingStart="10dp" android:paddingStart="10dp"
android:singleLine="true" android:singleLine="true"
android:textColor="@color/text_normal" android:textColor="@color/text_normal"
android:textColorHint="@color/text_gray_l" android:textColorHint="@color/text_gray_l"
android:textSize="14sp" android:textSize="13sp"
tools:text="edittext" /> tools:text="edittext" />
<Spinner <Spinner
@@ -36,11 +37,13 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1" android:layout_weight="1"
android:ellipsize="end"
android:gravity="center_vertical" android:gravity="center_vertical"
android:paddingStart="10dp" android:paddingStart="10dp"
android:singleLine="true"
android:textColor="@color/text_normal" android:textColor="@color/text_normal"
android:textColorHint="@color/text_gray_l" android:textColorHint="@color/text_gray_l"
android:textSize="14sp" android:textSize="13sp"
tools:text="textView" /> tools:text="textView" />
<ImageView <ImageView

View File

@@ -181,7 +181,7 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text='@{bean.agentCode}' android:text='@{bean.agentName}'
android:textSize="15sp" android:textSize="15sp"
tools:text="顺丰" /> tools:text="顺丰" />

View File

@@ -105,6 +105,9 @@ class GjjManifestAddViewModel : BaseViewModel() {
// 运单件数 // 运单件数
val waybillNum = MutableLiveData("") val waybillNum = MutableLiveData("")
// 运单重量
val waybillWeight = MutableLiveData("")
// 实到数量 // 实到数量
val actualNum = MutableLiveData("") val actualNum = MutableLiveData("")
@@ -281,6 +284,7 @@ class GjjManifestAddViewModel : BaseViewModel() {
// 填充表单字段 // 填充表单字段
waybillNo.value = manifest.getWaybillNo() waybillNo.value = manifest.getWaybillNo()
waybillNum.value = manifest.totalPc.toString() waybillNum.value = manifest.totalPc.toString()
waybillWeight.value = manifest.totalWeight.toString()
actualNum.value = manifest.pc.toString() actualNum.value = manifest.pc.toString()
actualWeight.value = manifest.weight.toString() actualWeight.value = manifest.weight.toString()
billingWeight.value = manifest.cashWeight.toString() billingWeight.value = manifest.cashWeight.toString()
@@ -311,6 +315,7 @@ class GjjManifestAddViewModel : BaseViewModel() {
// 填充表单字段 // 填充表单字段
waybillNo.value = "${manifest.prefix}${manifest.no}" waybillNo.value = "${manifest.prefix}${manifest.no}"
waybillNum.value = manifest.totalPc.toString() waybillNum.value = manifest.totalPc.toString()
waybillWeight.value = manifest.totalWeight.toString()
actualNum.value = manifest.pc.toString() actualNum.value = manifest.pc.toString()
actualWeight.value = manifest.weight.toString() actualWeight.value = manifest.weight.toString()
departure.value = manifest.origin departure.value = manifest.origin
@@ -359,6 +364,7 @@ class GjjManifestAddViewModel : BaseViewModel() {
|| verifyWaybillNo(waybillNo.value) || verifyWaybillNo(waybillNo.value)
|| agent.value.verifyNullOrEmpty("请选择代理") || agent.value.verifyNullOrEmpty("请选择代理")
|| waybillNum.value.verifyNullOrEmpty("请输入运单件数") || waybillNum.value.verifyNullOrEmpty("请输入运单件数")
|| waybillWeight.value.verifyNullOrEmpty("请输入运单重量")
|| actualNum.value.verifyNullOrEmpty("请输入实到件数") || actualNum.value.verifyNullOrEmpty("请输入实到件数")
|| actualWeight.value.verifyNullOrEmpty("请输入实到重量") || actualWeight.value.verifyNullOrEmpty("请输入实到重量")
|| billingWeight.value.verifyNullOrEmpty("请输入计费重量") || billingWeight.value.verifyNullOrEmpty("请输入计费重量")
@@ -382,6 +388,7 @@ class GjjManifestAddViewModel : BaseViewModel() {
"spCode" to specialCode.value.let { if (it.isNullOrEmpty()) "NOR" else it }, "spCode" to specialCode.value.let { if (it.isNullOrEmpty()) "NOR" else it },
"businessType" to businessType.value, "businessType" to businessType.value,
"totalPc" to waybillNum.value, "totalPc" to waybillNum.value,
"totalWeight" to waybillWeight.value,
"pc" to actualNum.value, "pc" to actualNum.value,
"weight" to actualWeight.value, "weight" to actualWeight.value,
"cashWeight" to billingWeight.value, "cashWeight" to billingWeight.value,

View File

@@ -185,7 +185,7 @@
</LinearLayout> </LinearLayout>
<!-- 第4行总件数、实到件数、实到重量 --> <!-- 第4行总件数、实到件数 -->
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -204,6 +204,19 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" /> android:layout_weight="1" />
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
android:id="@+id/waybillWeightInput"
hint='@{"请输入总重量"}'
required="@{true}"
title='@{"总 重 量"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@={viewModel.waybillWeight}'
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_weight="1" />
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
android:id="@+id/actualNumInput" android:id="@+id/actualNumInput"
hint='@{"请输入实到件数"}' hint='@{"请输入实到件数"}'
@@ -216,6 +229,15 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="15dp" android:layout_marginStart="15dp"
android:layout_weight="1" /> android:layout_weight="1" />
</LinearLayout>
<!-- 第5行实到重量、计费重量、品名(中) -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
android:id="@+id/actualWeightInput" android:id="@+id/actualWeightInput"
@@ -227,18 +249,8 @@
value='@={viewModel.actualWeight}' value='@={viewModel.actualWeight}'
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_weight="1" /> android:layout_weight="1" />
</LinearLayout>
<!-- 第5行计费重量、品名(中)、品名(英) -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
android:id="@+id/billingWeightInput" android:id="@+id/billingWeightInput"
hint='@{"请输入计费重量"}' hint='@{"请输入计费重量"}'
@@ -248,6 +260,7 @@
type="@{DataLayoutType.INPUT}" type="@{DataLayoutType.INPUT}"
value='@={viewModel.billingWeight}' value='@={viewModel.billingWeight}'
android:layout_width="0dp" android:layout_width="0dp"
android:layout_marginStart="15dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" /> android:layout_weight="1" />
@@ -263,6 +276,16 @@
android:layout_marginStart="15dp" android:layout_marginStart="15dp"
android:layout_weight="1" /> android:layout_weight="1" />
</LinearLayout>
<!-- 第6行品名(英)、包装类型、业务类型 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
hint='@{"请输入品名(英)"}' hint='@{"请输入品名(英)"}'
required="@{true}" required="@{true}"
@@ -272,18 +295,8 @@
value='@={viewModel.goodsNameEn}' value='@={viewModel.goodsNameEn}'
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_weight="1" /> android:layout_weight="1" />
</LinearLayout>
<!-- 第6行包装类型、业务类型、UN编号 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
hint='@{"请选择包装类型"}' hint='@{"请选择包装类型"}'
list="@{viewModel.packageTypeList}" list="@{viewModel.packageTypeList}"
@@ -293,6 +306,7 @@
type="@{DataLayoutType.SPINNER}" type="@{DataLayoutType.SPINNER}"
value='@={viewModel.packageType}' value='@={viewModel.packageType}'
android:layout_width="0dp" android:layout_width="0dp"
android:layout_marginStart="15dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" /> android:layout_weight="1" />
@@ -309,6 +323,15 @@
android:layout_marginStart="15dp" android:layout_marginStart="15dp"
android:layout_weight="1" /> android:layout_weight="1" />
</LinearLayout>
<!-- 第7行UN编号、备注 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:orientation="horizontal">
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
hint='@{"请输入UN编号"}' hint='@{"请输入UN编号"}'
required="@{false}" required="@{false}"
@@ -318,23 +341,22 @@
value='@={viewModel.unNumber}' value='@={viewModel.unNumber}'
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.295" />
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
hint='@{"请输入备注"}'
required="@{false}"
title='@{"备 注"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@={viewModel.remark}'
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="15dp" android:layout_marginStart="15dp"
android:layout_weight="1" /> android:layout_weight="0.605" />
</LinearLayout> </LinearLayout>
<!-- -->
<!-- 第7行备注占满整行 -->
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
hint='@{"请输入备注"}'
inputHeight="@{80}"
required="@{false}"
title='@{"备 注"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@={viewModel.remark}'
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp" />
</LinearLayout> </LinearLayout>

View File

@@ -111,7 +111,7 @@
</LinearLayout> </LinearLayout>
<!-- 第3行总件数、实到件数、实到重量 --> <!-- 第3行总件数、实到件数 -->
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -128,6 +128,16 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" /> android:layout_weight="1" />
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
enable="@{false}"
title='@{"总重量"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@{String.valueOf(viewModel.dataBean.totalWeight)}'
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
enable="@{false}" enable="@{false}"
title='@{"实到件数"}' title='@{"实到件数"}'
@@ -138,6 +148,15 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" /> android:layout_weight="1" />
</LinearLayout>
<!-- 第4行实到重量、计费重量、品名(中) -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
enable="@{false}" enable="@{false}"
title='@{"实到重量"}' title='@{"实到重量"}'
@@ -148,15 +167,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" /> android:layout_weight="1" />
</LinearLayout>
<!-- 第4行计费重量、品名(中)、品名(英) -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
enable="@{false}" enable="@{false}"
title='@{"计费重量"}' title='@{"计费重量"}'
@@ -177,6 +187,15 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" /> android:layout_weight="1" />
</LinearLayout>
<!-- 第5行品名(英)、包装类型、业务类型 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
enable="@{false}" enable="@{false}"
title='@{"品名(英)"}' title='@{"品名(英)"}'
@@ -187,15 +206,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" /> android:layout_weight="1" />
</LinearLayout>
<!-- 第5行包装类型、业务类型、UN编号 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
enable="@{false}" enable="@{false}"
title='@{"包装类型"}' title='@{"包装类型"}'
@@ -216,33 +226,34 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" /> android:layout_weight="1" />
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
enable="@{false}"
title='@{"UN编号"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@{viewModel.dataBean.unNumber}'
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout> </LinearLayout>
<!-- 第6行备注(全宽) --> <!-- 第6行UN编号、备注 -->
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:orientation="horizontal"> android:orientation="horizontal">
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
enable="@{false}"
title='@{"UN编号"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@{viewModel.dataBean.unNumber}'
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.295" />
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
enable="@{false}" enable="@{false}"
title='@{"备注"}' title='@{"备注"}'
titleLength="@{5}" titleLength="@{5}"
type="@{DataLayoutType.INPUT}" type="@{DataLayoutType.INPUT}"
value='@{viewModel.dataBean.remark}' value='@{viewModel.dataBean.remark}'
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" /> android:layout_height="wrap_content"
android:layout_weight="0.605" />
</LinearLayout> </LinearLayout>

View File

@@ -41,7 +41,7 @@
<!-- 缴费日期止 --> <!-- 缴费日期止 -->
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout <com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
hint='@{"选择缴费日期"}' hint='@{"选择结束缴费日期"}'
icon="@{@drawable/img_date}" icon="@{@drawable/img_date}"
type="@{SearchLayoutType.DATE}" type="@{SearchLayoutType.DATE}"
value="@={viewModel.paymentDateEnd}" value="@={viewModel.paymentDateEnd}"

View File

@@ -45,7 +45,7 @@
<!-- 缴费日期止 --> <!-- 缴费日期止 -->
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout <com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
hint='@{"选择缴费日期"}' hint='@{"选择结束缴费日期"}'
icon="@{@drawable/img_date}" icon="@{@drawable/img_date}"
type="@{SearchLayoutType.DATE}" type="@{SearchLayoutType.DATE}"
value="@={viewModel.paymentDateEnd}" value="@={viewModel.paymentDateEnd}"

View File

@@ -57,7 +57,7 @@
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"
hint='@{"请选择结束日期"}' hint='@{"请选择结束航班日期"}'
icon="@{@drawable/img_date}" icon="@{@drawable/img_date}"
type="@{SearchLayoutType.DATE}" type="@{SearchLayoutType.DATE}"
value="@={viewModel.flightDateEnd}" /> value="@={viewModel.flightDateEnd}" />

View File

@@ -12,11 +12,11 @@
type="Integer" /> type="Integer" />
</data> </data>
<!-- 外层容器承载间距 --> <!-- 外层容器承载间距marginHorizontal=5dp 使卡片左边缘与筛选项卡片对齐SmartRefreshLayout 10dp + 5dp = 15dp等于筛选项父 10dp + PadSearchLayout 内部 5dp -->
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp" android:layout_marginHorizontal="5dp"
android:layout_marginVertical="5dp" android:layout_marginVertical="5dp"
android:orientation="vertical"> android:orientation="vertical">