feat: 国际进港舱单分单新增与编辑页面

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-13 10:32:10 +08:00
parent a64b963d03
commit f61302a1f6
8 changed files with 510 additions and 5 deletions

View File

@@ -6,6 +6,7 @@
<data>
<import type="com.lukouguoji.module_base.ui.weight.search.layout.SearchLayoutType" />
<import type="android.view.View" />
<variable
name="viewModel"
@@ -159,6 +160,22 @@
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
<!-- 分单管理模式 - 返回按钮(列表区域右上方) -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:paddingHorizontal="20dp"
android:visibility="@{viewModel.isSubManagementMode ? View.VISIBLE : View.GONE}">
<ImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:onClick="@{()-> viewModel.subManagementBackClick()}"
android:src="@drawable/img_back_action" />
</LinearLayout>
<!-- 底部统计和操作按钮 -->
<LinearLayout
android:layout_width="match_parent"
@@ -229,12 +246,28 @@
</LinearLayout>
<!-- 操作按钮 -->
<!-- 操作按钮 - 默认模式 -->
<TextView
style="@style/tv_bottom_btn"
android:layout_marginEnd="15dp"
android:onClick="@{()-> viewModel.subManagementClick()}"
android:text="分单管理" />
android:text="分单管理"
android:visibility="@{viewModel.isSubManagementMode ? View.GONE : View.VISIBLE}" />
<!-- 操作按钮 - 分单管理模式 -->
<TextView
style="@style/tv_bottom_btn"
android:layout_marginEnd="15dp"
android:onClick="@{()-> viewModel.addSubWaybillClick()}"
android:text="新增分单"
android:visibility="@{viewModel.isSubManagementMode ? View.VISIBLE : View.GONE}" />
<TextView
style="@style/tv_bottom_btn"
android:layout_marginEnd="15dp"
android:onClick="@{()-> viewModel.modifySubWaybillClick()}"
android:text="修改分单"
android:visibility="@{viewModel.isSubManagementMode ? View.VISIBLE : View.GONE}" />
<TextView
style="@style/tv_bottom_btn"

View File

@@ -0,0 +1,180 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<import type="com.lukouguoji.module_base.ui.weight.data.layout.DataLayoutType" />
<import type="com.lukouguoji.module_base.common.DetailsPageType" />
<variable
name="viewModel"
type="com.lukouguoji.gjj.viewModel.IntImpManifestSubEditViewModel" />
</data>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/color_f2">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/title_tool_bar" />
<!-- 主内容区域 -->
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="15dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_white_radius_8"
android:orientation="vertical"
android:padding="8dp">
<!-- 第1行运单号只读、主分校验只读、分单号 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
enable="@{false}"
hint='@{"运单号"}'
required="@{false}"
title='@{"运 单 号"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@{viewModel.waybillNo}' />
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_weight="1"
enable="@{false}"
hint='@{"主分校验"}'
required="@{false}"
title='@{"主分校验"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@{viewModel.mainSubCheck}' />
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_weight="1"
enable="@{true}"
hint='@{"请输入分单号"}'
required="@{false}"
title='@{"分 单 号"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@={viewModel.subNo}' />
</LinearLayout>
<!-- 第2行件数、重量、品名(中) -->
<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
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
enable="@{true}"
hint='@{"请输入件数"}'
required="@{false}"
title='@{"件 数"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@={viewModel.pc}' />
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_weight="1"
enable="@{true}"
hint='@{"请输入重量"}'
required="@{false}"
title='@{"重 量"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@={viewModel.weight}' />
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_weight="1"
enable="@{true}"
hint='@{"请输入品名(中)"}'
required="@{false}"
title='@{"品名(中)"}'
titleLength="@{5}"
type="@{DataLayoutType.INPUT}"
value='@={viewModel.goodsCn}' />
</LinearLayout>
</LinearLayout>
<!-- 底部操作栏 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:padding="15dp">
<TextView
android:layout_width="150dp"
android:layout_height="50dp"
android:layout_marginEnd="30dp"
android:background="@drawable/bg_primary_radius_4"
android:gravity="center"
android:onClick="@{()-> viewModel.onCancelClick()}"
android:text="取消"
android:textColor="@color/white"
android:textSize="18sp" />
<TextView
android:layout_width="150dp"
android:layout_height="50dp"
android:background="@drawable/bg_primary_radius_4"
android:gravity="center"
android:onClick="@{()-> viewModel.onSaveClick()}"
android:text="保存"
android:textColor="@color/white"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
</FrameLayout>
</layout>