Compare commits

...

4 Commits

Author SHA1 Message Date
9406047a57 feat: new apifox mcp 2026-03-06 12:22:21 +08:00
b81d887b0b fix: 国际进港原始舱单列表项点击跳转详情页
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 12:21:37 +08:00
97ef9b4679 fix: 修复国际进港原始舱单接口解析及列表项布局规范
- API返回类型从BaseResultBean<PageInfo>改为PageInfo,匹配服务端实际响应
- GjjAirManifest字段maWbList重命名为maWb匹配JSON键名
- 列表项布局weight和completeSpace按国际出港规范对齐
- 移除页面初始自动加载,需用户输入航班号后手动查询
- CLAUDE.md补充列表项布局规范及常用字段weight参考表

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 12:06:20 +08:00
2efe322fcf fix: 移除国际进港舱单和电报解析页面重复的初始刷新调用
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 10:38:26 +08:00
12 changed files with 349 additions and 226 deletions

15
.claude/mcp.json Normal file
View File

@@ -0,0 +1,15 @@
{
"mcpServers": {
"空港集团 - API 文档": {
"command": "npx",
"args": [
"-y",
"apifox-mcp-server@latest",
"--project-id=7382863"
],
"env": {
"APIFOX_ACCESS_TOKEN": "ogr6p7RaNJa4GgIOSuUMJRSVLfDE"
}
}
}
}

127
CLAUDE.md
View File

@@ -146,6 +146,133 @@ class XxxViewModel : BasePageViewModel() {
**参考文件**: `module_gjc/.../GjcBoxWeighingActivity.kt``GjcBoxWeighingViewModel.kt`
#### 列表项布局规范 (`item_xxx.xml`)
**整体结构**: 水平 LinearLayout → 左侧图标 + 中间内容区(多行 KV+ 右侧箭头
```xml
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/ll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
android:layout_marginVertical="5dp"
android:background="@drawable/bg_item"
android:orientation="horizontal"
android:padding="10dp">
<!-- 左侧图标(普通列表用 img_plane多选列表用 img_plane/img_plane_s 切换) -->
<ImageView
android:id="@+id/iv_icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:src="@drawable/img_plane" />
<!-- 中间内容区 -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_weight="1"
android:orientation="vertical">
<!-- 第一行 KV -->
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- KV 组件(见下方单个 KV 模板) -->
</androidx.appcompat.widget.LinearLayoutCompat>
<!-- 第二行 KVmarginTop=10dp -->
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp">
<!-- KV 组件weight 和 completeSpace 必须与第一行对应位置相同) -->
</androidx.appcompat.widget.LinearLayoutCompat>
</LinearLayout>
<!-- 右侧箭头(固定写法) -->
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:src="@drawable/img_pda_right" />
</androidx.appcompat.widget.LinearLayoutCompat>
```
**单个 KV 组件模板**:
```xml
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:gravity="center_vertical">
<TextView
completeSpace="@{5}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="标签名:" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{bean.fieldName}" />
</androidx.appcompat.widget.LinearLayoutCompat>
```
**关键对齐规则**:
| 规则 | 说明 | 示例 |
|------|------|------|
| **列 weight 一致** | 第一行和第二行**相同位置**的 KV 组件必须使用相同的 `layout_weight` | 第一行第 1 列 `weight=1.0`,第二行第 1 列也必须 `weight=1.0` |
| **列 completeSpace 取最大值** | 同一列位置的 completeSpace 取两行中**较大**的那个值1 个汉字 = 1 宽度1 个标点 = 1 宽度) | 第一行"运单号:"=4第二行"特码:"=3 → 两行都用 `completeSpace=4` |
| **右侧箭头统一** | 固定使用 `@drawable/img_pda_right`,尺寸 `30x30dp``layout_gravity="center"``marginLeft="10dp"` | — |
**completeSpace 计算方法**: 统计 Label 字符数(含冒号),每个汉字算 1每个标点算 1。示例
- "运单号:" = 3字 + 1标点 = 4
- "运单类型:" = 4字 + 1标点 = 5
- "状态:" = 2字 + 1标点 = 3
- "始发站:" = 3字 + 1标点 = 4此处"始发站:"虽然有4个字符位但""也要占1个宽度
同列两行的 completeSpace 统一取 `max(row1, row2)`。例如第 1 列row1"运单号:"=4row2"特码:"=3 → 两行都用 4。
**常用字段 weight 参考表**(基于国际出港模块统计):
| 字段类型 | 典型 weight | 常见范围 | 典型 completeSpace |
|----------|------------|----------|-------------------|
| 运单号 | 1.0 | 0.9~1.2 | 4 |
| 件数 | 1.2 | 0.8~1.2 | 3~5 |
| 重量 | 0.8 | 0.7~1.0 | 3~5 |
| 状态 | 0.8 | 0.7~0.8 | 3~4 |
| 代理 | 0.8 | 0.7~0.8 | 3~4 |
| 特码 | 1.0 | 0.9~1.0 | 3~4 |
| 始发站/目的站 | 0.8 | 0.7~0.8 | 4 |
| 运单类型/业务类型 | 1.2 | 1.0~1.2 | 5 |
| 分单数 | 0.8 | 0.6~0.8 | 4 |
| 航班号/航班 | 1.0~1.2 | 1.0~1.2 | 4~5 |
| 时间类(入库/离港/过磅) | 1.0~1.2 | 1.0~1.2 | 5 |
> **原则**: 相同字段在不同页面应使用相近的 weight优先参照同模块已有布局。若新页面与已有页面**字段完全相同**,应直接复用其 weight 和 completeSpace 配置。
**典型 weight 分布示例**5列运单号/状态/代理/件数/重量 + 特码/始发站/目的站/运单类型/分单数):
```
位置: 第1列 第2列 第3列 第4列 第5列
weight: 1.0 0.8 0.8 1.2 0.8 ← 第一行
weight: 1.0 0.8 0.8 1.2 0.8 ← 第二行(必须相同)
cSpace: 4 4 4 5 4 ← 第一行
cSpace: 4 4 4 5 4 ← 第二行(必须相同,取 max
```
**参考文件**: `module_gjc/.../item_int_exp_tally.xml`(典型)、`item_gjc_query.xml``item_gjc_box_weighing.xml`
---
### 类型 2多选列表 + 批量操作页

View File

@@ -7,7 +7,7 @@ import androidx.databinding.ObservableBoolean
*/
data class GjjAirManifest(
// 主单原始舱单
var maWbList: GjjImportManifest? = null,
var maWb: GjjImportManifest? = null,
// 分单原始舱单列表
var haWbList: List<GjjImportManifest>? = null
) {
@@ -24,6 +24,6 @@ data class GjjAirManifest(
* 获取主单用于显示
*/
fun getMainManifest(): GjjImportManifest {
return maWbList ?: GjjImportManifest()
return maWb ?: GjjImportManifest()
}
}

View File

@@ -1727,7 +1727,7 @@ interface Api {
* 国际进港原始舱单-分页查询
*/
@POST("IntImpAirManifest/pageQuery")
suspend fun getIntArrAirManifestList(@Body data: RequestBody): BaseResultBean<PageInfo<GjjAirManifest>>
suspend fun getIntArrAirManifestList(@Body data: RequestBody): PageInfo<GjjAirManifest>
/**
* 国际进港原始舱单-分页合计

View File

@@ -55,5 +55,16 @@ class GjjManifestAddActivity :
.putExtra(Constant.Key.BEAN, bean)
context.startActivity(starter)
}
/**
* 编辑舱单通过GjjImportManifest对象
*/
@JvmStatic
fun startForEdit(context: Context, bean: com.lukouguoji.module_base.bean.GjjImportManifest) {
val starter = Intent(context, GjjManifestAddActivity::class.java)
.putExtra(Constant.Key.PAGE_TYPE, DetailsPageType.Modify.name)
.putExtra(Constant.Key.BEAN, bean)
context.startActivity(starter)
}
}
}

View File

@@ -45,8 +45,6 @@ class IntArrAirManifestActivity :
viewModel.refresh()
}
// 初始加载数据
viewModel.refresh()
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {

View File

@@ -44,9 +44,6 @@ class IntImpManifestActivity :
FlowBus.with<String>(ConstantEvent.EVENT_REFRESH).observe(this) {
viewModel.refresh()
}
// 初始加载数据
viewModel.refresh()
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {

View File

@@ -43,9 +43,6 @@ class IntImpMsgParseActivity :
FlowBus.with<String>(ConstantEvent.EVENT_REFRESH).observe(this) {
viewModel.refresh()
}
// 初始加载数据
viewModel.refresh()
}
companion object {

View File

@@ -21,7 +21,10 @@ class IntArrAirManifestViewHolder(view: View) :
binding.position = position
binding.executePendingBindings()
// 添加图标点击事件 - 切换选择状态
// 整卡点击 - 跳转详情页
notifyItemClick(position, binding.ll)
// 图标点击 - 切换选择状态(拦截,不触发卡片点击)
binding.ivIcon.setOnClickListener {
bean.checked.set(!bean.checked.get())
binding.executePendingBindings()

View File

@@ -146,9 +146,11 @@ class GjjManifestAddViewModel : BaseViewModel() {
// 编辑模式从Bean对象加载数据
if (pageType.value == DetailsPageType.Modify) {
val bean = intent.getSerializableExtra(Constant.Key.BEAN) as? com.lukouguoji.module_base.bean.GjjManifest
if (bean != null) {
val bean = intent.getSerializableExtra(Constant.Key.BEAN)
if (bean is com.lukouguoji.module_base.bean.GjjManifest) {
loadManifestFromBean(bean)
} else if (bean is com.lukouguoji.module_base.bean.GjjImportManifest) {
loadManifestFromImportBean(bean)
}
}
}
@@ -183,6 +185,30 @@ class GjjManifestAddViewModel : BaseViewModel() {
waybillType.value = manifest.awbType
}
/**
* 从GjjImportManifest对象加载数据编辑模式
*/
private fun loadManifestFromImportBean(manifest: com.lukouguoji.module_base.bean.GjjImportManifest) {
fid = manifest.fid.toString()
// 填充表单字段
waybillNo.value = manifest.wbNo
waybillNum.value = manifest.totalPc.toString()
actualNum.value = manifest.pc.toString()
actualWeight.value = manifest.weight.toString()
departure.value = manifest.origin
destination.value = manifest.dest
goodsNameCn.value = manifest.goodsCn
goodsNameEn.value = manifest.goods
unNumber.value = manifest.unNumber
remark.value = manifest.remark
// 设置下拉框选中值
agent.value = manifest.agentCode
specialCode.value = manifest.spCode
waybillType.value = manifest.awbType
}
/**
* 保存点击
*/

View File

@@ -106,7 +106,7 @@ class IntArrAirManifestViewModel : BasePageViewModel() {
val haWbList = mutableListOf<GjjImportManifest>()
selectedItems.forEach { airManifest ->
airManifest.maWbList?.let { maWbList.add(it) }
airManifest.maWb?.let { maWbList.add(it) }
airManifest.haWbList?.let { haWbList.addAll(it) }
}
@@ -141,7 +141,7 @@ class IntArrAirManifestViewModel : BasePageViewModel() {
}
// 获取第一个选中项的主单数据
val manifest = selectedItems.firstOrNull()?.maWbList ?: return
val manifest = selectedItems.firstOrNull()?.maWb ?: return
// 跳转到补充信息页面
com.lukouguoji.gjj.activity.IntArrSupplementInfoActivity.start(
@@ -175,7 +175,7 @@ class IntArrAirManifestViewModel : BasePageViewModel() {
val haWbList = mutableListOf<GjjImportManifest>()
selectedItems.forEach { airManifest ->
airManifest.maWbList?.let { maWbList.add(it) }
airManifest.maWb?.let { maWbList.add(it) }
airManifest.haWbList?.let { haWbList.addAll(it) }
}
@@ -223,7 +223,7 @@ class IntArrAirManifestViewModel : BasePageViewModel() {
val haWbList = mutableListOf<GjjImportManifest>()
selectedItems.forEach { airManifest ->
airManifest.maWbList?.let { maWbList.add(it) }
airManifest.maWb?.let { maWbList.add(it) }
airManifest.haWbList?.let { haWbList.addAll(it) }
}
@@ -264,10 +264,10 @@ class IntArrAirManifestViewModel : BasePageViewModel() {
// 统计参数(无分页)
val totalParams = filterParams.toRequestBody()
// 获取列表带Loading
// 获取列表带Loading接口直接返回PageInfo无BaseResultBean包装
launchLoadingCollect({ NetApply.api.getIntArrAirManifestList(listParams) }) {
onSuccess = { result ->
pageModel.handleListBean(result.data?.toBaseListBean())
pageModel.handleListBean(result.toBaseListBean())
}
}
@@ -290,7 +290,7 @@ class IntArrAirManifestViewModel : BasePageViewModel() {
val airManifest = list.getOrNull(position) ?: return
// 获取主单数据
val manifest = airManifest.maWbList ?: return
val manifest = airManifest.maWb ?: return
// 跳转到详情页
com.lukouguoji.gjj.activity.IntArrAirManifestDetailsActivity.start(

View File

@@ -19,14 +19,15 @@
type="Integer" />
</data>
<LinearLayout
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/ll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:background="@drawable/bg_white_radius_8"
android:layout_marginHorizontal="15dp"
android:layout_marginVertical="5dp"
android:background="@drawable/bg_item"
android:orientation="horizontal"
android:padding="15dp"
android:gravity="center_vertical">
android:padding="10dp">
<!-- 选中图标 (飞机图标,根据选择状态切换图片) -->
<ImageView
@@ -41,289 +42,237 @@
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginLeft="10dp"
android:layout_weight="1"
android:orientation="vertical">
<!-- 第一行:运单号、状态、代理、件数、重量 -->
<LinearLayout
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
android:layout_height="wrap_content">
<!-- 运单号 -->
<LinearLayout
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:gravity="center_vertical"
android:orientation="horizontal">
android:layout_weight="1.0"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{5}"
android:text="运单号:"
android:textColor="@color/text_normal"
android:textSize="16sp" />
completeSpace="@{4}"
android:text="运单号:" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{manifest.wbNo}"
android:textColor="@color/colorPrimary"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
<!-- 状态 -->
<LinearLayout
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.8"
android:gravity="center_vertical"
android:orientation="horizontal">
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{3}"
android:text="状态:"
android:textColor="@color/text_normal"
android:textSize="16sp" />
completeSpace="@{4}"
android:text="状态:" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{manifest.mftStatus ?? ``}"
android:textColor="@color/text_normal"
android:textSize="16sp" />
android:text="@{manifest.mftStatus ?? ``}" />
</LinearLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
<!-- 代理 -->
<LinearLayout
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.8"
android:gravity="center_vertical"
android:orientation="horizontal">
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{3}"
android:text="代理:"
android:textColor="@color/text_normal"
android:textSize="16sp" />
completeSpace="@{4}"
android:text="代理:" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{manifest.agentCode ?? ``}"
android:textColor="@color/text_normal"
android:textSize="16sp" />
android:text="@{manifest.agentCode ?? ``}" />
</LinearLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
<!-- 件数 -->
<LinearLayout
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.8"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{3}"
android:text="件数:"
android:textColor="@color/text_normal"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{String.valueOf((int)manifest.pc)}"
android:textColor="@color/text_normal"
android:textSize="16sp" />
</LinearLayout>
<!-- 重量 -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.8"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{3}"
android:text="重量:"
android:textColor="@color/text_normal"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{String.valueOf((int)manifest.weight)}"
android:textColor="@color/text_normal"
android:textSize="16sp" />
</LinearLayout>
</LinearLayout>
<!-- 第二行:特码、始发站、目的站、运单类型、分单数 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<!-- 特码 -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{3}"
android:text="特码:"
android:textColor="@color/text_normal"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{manifest.spCode ?? ``}"
android:textColor="@color/text_normal"
android:textSize="16sp" />
</LinearLayout>
<!-- 始发站 -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{4}"
android:text="始发站:"
android:textColor="@color/text_normal"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{manifest.fdep ?? ``}"
android:textColor="@color/text_normal"
android:textSize="16sp" />
</LinearLayout>
<!-- 目的站 -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{4}"
android:text="目的站:"
android:textColor="@color/text_normal"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{manifest.fdest ?? ``}"
android:textColor="@color/text_normal"
android:textSize="16sp" />
</LinearLayout>
<!-- 运单类型 -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:gravity="center_vertical"
android:orientation="horizontal">
android:layout_weight="1.2"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{5}"
android:text="运单类型:"
android:textColor="@color/text_normal"
android:textSize="16sp" />
android:text="件数:" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{manifest.awbTypeName ?? ``}"
android:textColor="@color/text_normal"
android:textSize="16sp" />
android:text="@{String.valueOf((int)manifest.pc)}" />
</LinearLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
<!-- 分单数 -->
<LinearLayout
<!-- 重量 -->
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical"
android:orientation="horizontal">
android:layout_weight="0.8"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
completeSpace="@{4}"
android:text="分单数:"
android:textColor="@color/text_normal"
android:textSize="16sp" />
android:text="重量:" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{String.valueOf(manifest.haWbNum)}"
android:textColor="@color/text_normal"
android:textSize="16sp" />
android:text="@{String.valueOf((int)manifest.weight)}" />
</LinearLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
</LinearLayout>
</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.0"
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="@{manifest.spCode ?? ``}" />
</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="@{manifest.fdep ?? ``}" />
</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="@{manifest.fdest ?? ``}" />
</androidx.appcompat.widget.LinearLayoutCompat>
<!-- 运单类型 -->
<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="@{5}"
android:text="运单类型:" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{manifest.awbTypeName ?? ``}" />
</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="@{String.valueOf(manifest.haWbNum)}" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
</LinearLayout>
<!-- 右箭头 -->
<!--箭头 -->
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="15dp"
android:src="@drawable/ic_arrow_right" />
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:src="@drawable/img_pda_right" />
</LinearLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
</layout>