Compare commits

...

9 Commits

Author SHA1 Message Date
eba9b44699 feat: opt item ui 2026-06-20 12:45:47 +08:00
128b7c3e4e style: 国际出港/进港小弹窗统一宽度及取消确定按钮
表单式小弹窗统一为480dp宽,底部按钮统一取消/确定;
分配人员弹窗去掉航班行、分配人下拉改为铺满。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-20 12:44:54 +08:00
3fedef27a7 feat: 国际出港装载列表项加航程及始发站/目的站筛选
列表项改为5列并新增航程(range 为空时回退始发港-目的港拼接);
搜索区参考电报生成接口,填航班日期+号联动查询,始发站可下拉、
目的站自动填充只读,dep/dest 作为筛选传给列表接口。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-20 12:19:51 +08:00
608f1af1f4 feat: 国际出港理货列表项改航程/航班日期/航班号
始发站和目的站合并为航程(range 为空时回退为始发站-目的站拼接),
新增航班日期、航班号栏位,去掉特码。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-20 11:55:09 +08:00
0a0827f516 style: 国际出港页面标题统一加「国际出港」前缀
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-20 11:43:20 +08:00
9f7b2dc27c style: 国际出港/进港列表子列表补全行分割线
为国际出港仓库、国际进港舱单/原始舱单/理货报告/仓库等列表的展开子列表补全内容行分割线;并将进港舱单子列表除选项外各列统一为等宽

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-20 11:34:23 +08:00
aa8920ec55 chore: 文件末尾补全换行并更新本地权限配置
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-20 11:22:36 +08:00
b91b54acbe fix: 开始组装卸货成功后重拉 useId 支持连续卸多票
卸货时 useId 来自 queryUldInfo,但同一 ULD 因 lastQueriedUldNo
防抖不会重新查询,useId 停留在卸首票前的陈旧值;装货修复的
useId==0 守卫又挡住卸货后的重拉,导致卸货成功后 useId 不刷新,
无法连续卸多票。改为按操作类型区分:装货保留 useId==0 守卫,
卸货成功后无条件重拉 getUld 回填最新 useId。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-15 16:43:39 +08:00
7d5b3b2438 fix: 开始组装新增模式支持连续组装多票
新增模式对全新 ULD 首票装货后,服务端才生成 useId,
而装货/卸货接口返回值不含 useId,未回填导致后续票仍以
useId=null 提交、被当作新 use 处理,无法继续多票。
每次操作成功后重拉 getUld 回填 useId,并在航班为空时
用运单航班兜底刷新组装信息列表。仅在 useId 为 0、航班
为空时生效,修改模式及已过磅 ULD 保持原逻辑不变。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-15 14:03:25 +08:00
54 changed files with 420 additions and 145 deletions

View File

@@ -148,7 +148,8 @@
"Bash(sed -n '73,100p' module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpArriveViewModel.kt)", "Bash(sed -n '73,100p' module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpArriveViewModel.kt)",
"Bash(sed -n '82,115p' module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpStorageUseViewModel.kt)", "Bash(sed -n '82,115p' module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/IntExpStorageUseViewModel.kt)",
"Bash(sed -n '212,240p' module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestViewModel.kt)", "Bash(sed -n '212,240p' module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestViewModel.kt)",
"mcp__plugin_claude-mem_mcp-search__search" "mcp__plugin_claude-mem_mcp-search__search",
"Read(//Users/kid/.claude/**)"
], ],
"deny": [], "deny": [],
"ask": [] "ask": []

View File

@@ -272,4 +272,4 @@ class LoginActivity : BaseActivity(),
} }
} }
} }

View File

@@ -9,6 +9,8 @@ data class GjcCheckInPage(
var fno: String? = null, // 航班号 var fno: String? = null, // 航班号
var wbNo: String? = null, // 运单号 var wbNo: String? = null, // 运单号
var hno: String? = null, // 分单号 var hno: String? = null, // 分单号
var dep: String? = null, // 始发站
var dest: String? = null, // 目的站
var pageNum: Int = 1, // 页码 var pageNum: Int = 1, // 页码
var pageSize: Int = 10 // 每页条数 var pageSize: Int = 10 // 每页条数
) )

View File

@@ -10,6 +10,8 @@ class GjcExportLoad {
var activeId: String = "" // 运单活跃号 var activeId: String = "" // 运单活跃号
var by1: String = "" // 第一承运人 var by1: String = "" // 第一承运人
var dep: String = "" // 始发港 var dep: String = "" // 始发港
var dest: String = "" // 目的港
var range: String = "" // 航程
var fdate: String = "" // 申报航班日期 var fdate: String = "" // 申报航班日期
var fid: String = "" // 航班主键id var fid: String = "" // 航班主键id
var fno: String = "" // 申报航班号 var fno: String = "" // 申报航班号
@@ -47,4 +49,14 @@ class GjcExportLoad {
fun getFullWaybillNo(): String { fun getFullWaybillNo(): String {
return if (prefix.isNotEmpty()) "$prefix$no" else no return if (prefix.isNotEmpty()) "$prefix$no" else no
} }
/**
* 航程
* 优先取 range为空时用 始发港-目的港 拼接
*/
val rangeText: String
get() {
if (range.isNotBlank()) return range
return if (dep.isNotEmpty() && dest.isNotEmpty()) "$dep-$dest" else dep + dest
}
} }

View File

@@ -167,6 +167,25 @@ data class GjcMaWb(
} }
} }
/**
* 航程
* 优先取 range为空时用 始发站-目的站 拼接
*/
val rangeText: String
get() {
if (!range.isNullOrBlank()) return range!!
val d1 = dep?.takeIf { it.isNotBlank() } ?: ""
val d2 = dest?.takeIf { it.isNotBlank() } ?: ""
return if (d1.isNotEmpty() && d2.isNotEmpty()) "$d1-$d2" else d1 + d2
}
/**
* 航班日期(格式化)
* 格式: yyyy-MM-dd
*/
val flightDateText: String
get() = fdate?.let { SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(it) } ?: ""
/** /**
* 清仓正常状态中文 * 清仓正常状态中文
* 0-否1-是 * 0-否1-是

View File

@@ -26,7 +26,7 @@ class GjcAssembleAllocateActivity :
override fun viewModelClass() = GjcAssembleAllocateViewModel::class.java override fun viewModelClass() = GjcAssembleAllocateViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) { override fun initOnCreate(savedInstanceState: Bundle?) {
setBackArrow("组装分配") setBackArrow("国际出港组装分配")
binding.viewModel = viewModel binding.viewModel = viewModel

View File

@@ -30,7 +30,7 @@ class GjcAssembleWeightEditActivity :
override fun viewModelClass() = GjcAssembleWeightEditViewModel::class.java override fun viewModelClass() = GjcAssembleWeightEditViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) { override fun initOnCreate(savedInstanceState: Bundle?) {
setBackArrow("修改组装重量") setBackArrow("国际出港修改组装重量")
binding.viewModel = viewModel binding.viewModel = viewModel

View File

@@ -26,7 +26,7 @@ class GjcBoxWeighingActivity :
override fun viewModelClass() = GjcBoxWeighingViewModel::class.java override fun viewModelClass() = GjcBoxWeighingViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) { override fun initOnCreate(savedInstanceState: Bundle?) {
setBackArrow("板箱过磅") setBackArrow("国际出港板箱过磅")
binding.viewModel = viewModel binding.viewModel = viewModel

View File

@@ -22,7 +22,7 @@ class GjcBoxWeighingAddActivity :
override fun viewModelClass() = GjcBoxWeighingAddViewModel::class.java override fun viewModelClass() = GjcBoxWeighingAddViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) { override fun initOnCreate(savedInstanceState: Bundle?) {
setBackArrow("板箱过磅") setBackArrow("国际出港板箱过磅")
binding.viewModel = viewModel binding.viewModel = viewModel
viewModel.initOnCreated(this, intent) viewModel.initOnCreated(this, intent)

View File

@@ -23,7 +23,7 @@ class GjcBoxWeighingDetailsActivity :
override fun viewModelClass() = GjcBoxWeighingDetailsViewModel::class.java override fun viewModelClass() = GjcBoxWeighingDetailsViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) { override fun initOnCreate(savedInstanceState: Bundle?) {
setBackArrow("板箱过磅详情") setBackArrow("国际出港板箱过磅详情")
binding.viewModel = viewModel binding.viewModel = viewModel

View File

@@ -278,7 +278,7 @@ class GjcFuBangActivity : BaseActivity(), View.OnClickListener {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_gjc_fu_bang) setContentView(R.layout.activity_gjc_fu_bang)
setBackArrow("板箱过磅") setBackArrow("国际出港板箱过磅")
viewModel = ViewModelProvider(this).get(GjcFuBangViewModel::class.java) viewModel = ViewModelProvider(this).get(GjcFuBangViewModel::class.java)
initView() initView()

View File

@@ -23,7 +23,7 @@ class GjcHandoverActivity :
override fun viewModelClass() = GjcHandoverViewModel::class.java override fun viewModelClass() = GjcHandoverViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) { override fun initOnCreate(savedInstanceState: Bundle?) {
setBackArrow("货物交接单") setBackArrow("国际出港货物交接单")
binding.viewModel = viewModel binding.viewModel = viewModel

View File

@@ -69,7 +69,7 @@ class GjcStartReceiveActivity : BaseActivity(), View.OnClickListener {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_gjc_start_receive) setContentView(R.layout.activity_gjc_start_receive)
setBackArrow("开始收运") setBackArrow("国际出港开始收运")
initView() initView()
viewModel = ViewModelProvider(this).get(GjcStartReceiveViewModel::class.java) viewModel = ViewModelProvider(this).get(GjcStartReceiveViewModel::class.java)
val dgrObj = JSONObject() val dgrObj = JSONObject()

View File

@@ -46,7 +46,7 @@ class GjcWareHouseInfoActivity : BaseActivity(), View.OnClickListener {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_gjc_ware_house_info) setContentView(R.layout.activity_gjc_ware_house_info)
setBackArrow("仓库管理详情") setBackArrow("国际出港仓库管理详情")
initView() initView()
viewModel.queryInfoByIdWareHouse(id) viewModel.queryInfoByIdWareHouse(id)

View File

@@ -26,7 +26,7 @@ class GjcWeighingListActivity :
override fun viewModelClass() = GjcWeighingViewModel::class.java override fun viewModelClass() = GjcWeighingViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) { override fun initOnCreate(savedInstanceState: Bundle?) {
setBackArrow("出港待计重") setBackArrow("国际出港待计重")
binding.viewModel = viewModel binding.viewModel = viewModel
@@ -42,7 +42,7 @@ class GjcWeighingListActivity :
// 监听刷新事件 // 监听刷新事件
FlowBus.with<String>(ConstantEvent.EVENT_CHECK_CHANGED).observe(this) { viewModel.onItemCheckChanged() } FlowBus.with<String>(ConstantEvent.EVENT_CHECK_CHANGED).observe(this) { viewModel.onItemCheckChanged() }
FlowBus.with<String>(ConstantEvent.EVENT_REFRESH) FlowBus.with<String>(ConstantEvent.EVENT_REFRESH)
.observe(this) { .observe(this) {
viewModel.refresh() viewModel.refresh()

View File

@@ -33,7 +33,7 @@ class GjcWeighingRecordDetailsActivity :
override fun viewModelClass() = GjcWeighingRecordDetailsViewModel::class.java override fun viewModelClass() = GjcWeighingRecordDetailsViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) { override fun initOnCreate(savedInstanceState: Bundle?) {
setBackArrow("计重明细") setBackArrow("国际出港计重明细")
binding.viewModel = viewModel binding.viewModel = viewModel

View File

@@ -26,7 +26,7 @@ class GjcWeighingRecordListActivity :
override fun viewModelClass() = GjcWeighingRecordViewModel::class.java override fun viewModelClass() = GjcWeighingRecordViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) { override fun initOnCreate(savedInstanceState: Bundle?) {
setBackArrow("计重记录") setBackArrow("国际出港计重记录")
binding.viewModel = viewModel binding.viewModel = viewModel

View File

@@ -30,7 +30,7 @@ class GjcWeighingStartActivity :
override fun viewModelClass() = GjcWeighingStartViewModel::class.java override fun viewModelClass() = GjcWeighingStartViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) { override fun initOnCreate(savedInstanceState: Bundle?) {
setBackArrow("开始计重") setBackArrow("国际出港开始计重")
binding.viewModel = viewModel binding.viewModel = viewModel
viewModel.initOnCreated(this, intent) viewModel.initOnCreated(this, intent)

View File

@@ -35,7 +35,7 @@ class IntExpArriveActivity :
// 注入 ARouter 参数 // 注入 ARouter 参数
ARouter.getInstance().inject(this) ARouter.getInstance().inject(this)
setBackArrow("出港运抵") setBackArrow("国际出港运抵")
binding.viewModel = viewModel binding.viewModel = viewModel
// 如果有传入运单号,自动填充并触发搜索 // 如果有传入运单号,自动填充并触发搜索
@@ -52,7 +52,7 @@ class IntExpArriveActivity :
// 监听刷新事件 // 监听刷新事件
FlowBus.with<String>(ConstantEvent.EVENT_CHECK_CHANGED).observe(this) { viewModel.onItemCheckChanged() } FlowBus.with<String>(ConstantEvent.EVENT_CHECK_CHANGED).observe(this) { viewModel.onItemCheckChanged() }
FlowBus.with<String>(ConstantEvent.EVENT_REFRESH).observe(this) { FlowBus.with<String>(ConstantEvent.EVENT_REFRESH).observe(this) {
viewModel.refresh() viewModel.refresh()
} }

View File

@@ -26,7 +26,7 @@ class IntExpLoadActivity :
override fun viewModelClass() = IntExpLoadViewModel::class.java override fun viewModelClass() = IntExpLoadViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) { override fun initOnCreate(savedInstanceState: Bundle?) {
setBackArrow("出港装载") setBackArrow("国际出港装载")
binding.viewModel = viewModel binding.viewModel = viewModel
// 绑定分页 // 绑定分页

View File

@@ -26,7 +26,7 @@ class IntExpOutHandoverActivity :
override fun viewModelClass() = IntExpOutHandoverViewModel::class.java override fun viewModelClass() = IntExpOutHandoverViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) { override fun initOnCreate(savedInstanceState: Bundle?) {
setBackArrow("出库交接") setBackArrow("国际出港出库交接")
binding.viewModel = viewModel binding.viewModel = viewModel
// 绑定分页 // 绑定分页
@@ -37,7 +37,7 @@ class IntExpOutHandoverActivity :
// 监听刷新事件 // 监听刷新事件
FlowBus.with<String>(ConstantEvent.EVENT_CHECK_CHANGED).observe(this) { viewModel.onItemCheckChanged() } FlowBus.with<String>(ConstantEvent.EVENT_CHECK_CHANGED).observe(this) { viewModel.onItemCheckChanged() }
FlowBus.with<String>(ConstantEvent.EVENT_REFRESH).observe(this) { FlowBus.with<String>(ConstantEvent.EVENT_REFRESH).observe(this) {
viewModel.refresh() viewModel.refresh()
} }

View File

@@ -26,7 +26,7 @@ class IntExpTallyActivity :
override fun viewModelClass() = IntExpTallyViewModel::class.java override fun viewModelClass() = IntExpTallyViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) { override fun initOnCreate(savedInstanceState: Bundle?) {
setBackArrow("出港理货") setBackArrow("国际出港理货")
binding.viewModel = viewModel binding.viewModel = viewModel
// 绑定分页 // 绑定分页

View File

@@ -23,7 +23,7 @@ class IntExpAssembleActivity :
override fun viewModelClass() = IntExpAssembleViewModel::class.java override fun viewModelClass() = IntExpAssembleViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) { override fun initOnCreate(savedInstanceState: Bundle?) {
setBackArrow("出港组装") setBackArrow("国际出港组装")
binding.viewModel = viewModel binding.viewModel = viewModel
// 初始化组装人下拉列表 // 初始化组装人下拉列表

View File

@@ -63,7 +63,7 @@ class IntExpAssembleStartActivity :
override fun viewModelClass() = IntExpAssembleStartViewModel::class.java override fun viewModelClass() = IntExpAssembleStartViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) { override fun initOnCreate(savedInstanceState: Bundle?) {
setBackArrow("开始组装") setBackArrow("国际出港开始组装")
binding.viewModel = viewModel binding.viewModel = viewModel
// 为ULD编号添加大写字母和数字的输入限制 // 为ULD编号添加大写字母和数字的输入限制

View File

@@ -29,7 +29,7 @@ class IntExpMoveActivity : BaseBindingActivity<ActivityIntExpMoveBinding, IntExp
override fun viewModelClass() = IntExpMoveViewModel::class.java override fun viewModelClass() = IntExpMoveViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) { override fun initOnCreate(savedInstanceState: Bundle?) {
setBackArrow("出港移库") setBackArrow("国际出港移库")
binding.viewModel = viewModel binding.viewModel = viewModel
binding.activity = this binding.activity = this

View File

@@ -456,6 +456,33 @@ class IntExpAssembleStartViewModel : BaseViewModel() {
} }
} }
/**
* 重新查询 ULD 信息,仅回填最新的 useId 与 ULD 状态。
*
* 用途:以"新增"形式进入页面、对全新 ULD 首次装货时,服务端在首票成功后才生成
* 该 ULD 的 use 记录useId。装货/卸货接口返回值GjcWarehouse不含 useId
* 若不回填,后续票仍以 useId=null 提交,会被服务端当作新的 use 处理,
* 导致无法继续往同一 ULD 组装多票。此处在每次操作成功后回填最新 useId
* 保证多票组装提交到同一 ULD use 记录。
*
* 不在此处刷新航班/组装信息列表,避免与 loadAssembledList 的航班兜底逻辑相互覆盖。
*/
private fun reloadUldUseId(uldNo: String) {
if (uldNo.isEmpty()) return
launchCollect({ NetApply.api.getUldWithConsumeWeight(uldNo) }) {
onSuccess = { result ->
val uldBean = result.data
if (uldBean != null) {
// 仅回填 useId用于后续装货/卸货提交到同一 ULD use 记录),
// 不改动 ULD 状态/耗材重量/航班等其它字段,避免影响表单现有逻辑。
uldInfo.value = uldInfo.value?.apply {
useId = uldBean.useId
}
}
}
}
}
/** /**
* 卸货按钮点击 * 卸货按钮点击
*/ */
@@ -589,6 +616,10 @@ class IntExpAssembleStartViewModel : BaseViewModel() {
// 3. 【修改】区分 wbInfo 构建 // 3. 【修改】区分 wbInfo 构建
val wbInfo: Map<String, Any?> val wbInfo: Map<String, Any?>
// 记录本次操作运单的航班信息(用于操作成功后刷新组装信息列表)
var operationFno = ""
var operationFdate = ""
if (isLoad) { if (isLoad) {
// 装货:从运单列表获取 // 装货:从运单列表获取
val currentWaybillList = waybillList.value val currentWaybillList = waybillList.value
@@ -615,6 +646,9 @@ class IntExpAssembleStartViewModel : BaseViewModel() {
selectedWaybill.weight.toDoubleOrNull() selectedWaybill.weight.toDoubleOrNull()
} }
operationFno = selectedWaybill.fno
operationFdate = selectedWaybill.fdate
wbInfo = mapOf( wbInfo = mapOf(
"wbNo" to selectedWaybill.waybillNo, "wbNo" to selectedWaybill.waybillNo,
"pc" to waybillPc, "pc" to waybillPc,
@@ -631,6 +665,9 @@ class IntExpAssembleStartViewModel : BaseViewModel() {
return return
} }
operationFno = assembleWaybill.fno
operationFdate = assembleWaybill.fdate
wbInfo = mapOf( wbInfo = mapOf(
"wbNo" to assembleWaybill.waybillNo, "wbNo" to assembleWaybill.waybillNo,
"pc" to assembleWaybill.pieces.toLongOrNull(), // 运单件数 "pc" to assembleWaybill.pieces.toLongOrNull(), // 运单件数
@@ -665,7 +702,7 @@ class IntExpAssembleStartViewModel : BaseViewModel() {
}) { }) {
onSuccess = { result -> onSuccess = { result ->
// 接口成功后才显示成功提示并刷新列表 // 接口成功后才显示成功提示并刷新列表
handleOperationSuccess(operationName, isLoad, uldNo, assembleCount, assembleWeight) handleOperationSuccess(operationName, isLoad, uldNo, operationFno, operationFdate)
} }
onFailed = { code, message -> onFailed = { code, message ->
showToast("${operationName}失败: $message") showToast("${operationName}失败: $message")
@@ -680,8 +717,8 @@ class IntExpAssembleStartViewModel : BaseViewModel() {
operationName: String, operationName: String,
isLoad: Boolean, isLoad: Boolean,
uldNo: String, uldNo: String,
assembleCount: String, operationFno: String,
assembleWeight: String operationFdate: String
) { ) {
showToast("${operationName}成功") showToast("${operationName}成功")
@@ -693,6 +730,32 @@ class IntExpAssembleStartViewModel : BaseViewModel() {
// 清空表单(在刷新数据前清空,避免刷新时的状态冲突) // 清空表单(在刷新数据前清空,避免刷新时的状态冲突)
clearForm() clearForm()
// 回填最新 useId关键用于后续装货/卸货提交到同一 ULD use 记录):
// - 装货:以"新增"形式进入、对全新 ULD 首票装货时,服务端在首票成功后才生成
// 该 ULD 的 use 记录,而接口返回值不含 useId不回填则后续票以 useId=null 提交、
// 被当作新 use 处理,无法继续多票。仅在本地 useId 尚未生成(为 0时回填
// "修改"模式及已过磅 ULD 本就带 useId保持原逻辑不变。
// - 卸货:从组装信息列表选票卸货,同一 ULD 因 lastQueriedUldNo 防抖不会重新查询 ULD
// useId 会停留在卸首票前的陈旧值,故卸货成功后无条件重拉,保证可连续卸多票。
if (isLoad) {
if ((uldInfo.value?.useId ?: 0L) == 0L) {
reloadUldUseId(uldNo)
}
} else {
reloadUldUseId(uldNo)
}
// 添加形式(全新 ULD时航班可能未从 ULD 查询接口获取,导致组装信息列表查不出;
// 仅在航班为空时用本次操作运单的航班信息兜底补全ULD 已带航班时保持原值不变。
if (assembleFlightNo.value.isNullOrEmpty() || assembleFlightDate.value.isNullOrEmpty()) {
if (operationFno.isNotEmpty() && operationFdate.isNotEmpty()) {
assembleFlightNo.value = operationFno
// 与 ULD 查询保持一致,只取年月日(去掉时间部分)
assembleFlightDate.value =
if (operationFdate.contains(" ")) operationFdate.split(" ")[0] else operationFdate
}
}
// 清除防抖标记,强制刷新组装信息列表 // 清除防抖标记,强制刷新组装信息列表
lastQueriedAssembledParams = "" lastQueriedAssembledParams = ""
loadAssembledList() loadAssembledList()

View File

@@ -17,6 +17,7 @@ import com.lukouguoji.module_base.impl.FlowBus
import com.lukouguoji.module_base.ktx.commonAdapter import com.lukouguoji.module_base.ktx.commonAdapter
import com.lukouguoji.module_base.ktx.launchCollect import com.lukouguoji.module_base.ktx.launchCollect
import com.lukouguoji.module_base.ktx.launchLoadingCollect import com.lukouguoji.module_base.ktx.launchLoadingCollect
import com.lukouguoji.module_base.ktx.noNull
import com.lukouguoji.module_base.ktx.showToast import com.lukouguoji.module_base.ktx.showToast
import com.lukouguoji.module_base.ktx.toRequestBody import com.lukouguoji.module_base.ktx.toRequestBody
import com.lukouguoji.module_base.model.ScanModel import com.lukouguoji.module_base.model.ScanModel
@@ -34,6 +35,77 @@ class IntExpLoadViewModel : BasePageViewModel() {
val flightDate = MutableLiveData<String>(DateUtils.getCurrentTime().formatDate()) // 航班日期 val flightDate = MutableLiveData<String>(DateUtils.getCurrentTime().formatDate()) // 航班日期
val flightNo = MutableLiveData("") // 航班号 val flightNo = MutableLiveData("") // 航班号
val waybillNo = MutableLiveData("") // 运单号 val waybillNo = MutableLiveData("") // 运单号
val depPort = MutableLiveData("") // 始发站(下拉选择)
val depPortList = MutableLiveData<List<KeyValue>>(emptyList()) // 始发站下拉列表(始发港 + 经停港)
val destPort = MutableLiveData("") // 目的站(航班查询自动填充,不可编辑)
// ========== 航班级联查询 ==========
private var lastQueriedFlight = "" // 避免重复查询
/**
* 航班日期输入完成回调
*/
fun onFlightDateInputComplete() {
lastQueriedFlight = ""
queryFlightIfReady()
}
/**
* 航班号输入完成回调
*/
fun onFlightNoInputComplete() {
queryFlightIfReady()
}
/**
* 航班日期 + 航班号 均有值时,查询航班并填充始发站/目的站
* 参考「电报生成」(/flt/intFlight):始发站下拉(始发港+经停港),目的站自动填充且只读
*/
private fun queryFlightIfReady() {
val fdate = flightDate.value
val fno = flightNo.value
if (fdate.isNullOrEmpty() || fno.isNullOrEmpty()) return
val key = "$fdate-$fno"
if (key == lastQueriedFlight) return
lastQueriedFlight = key
launchCollect({
NetApply.api.getGjFlightBean(
mapOf(
"fdate" to fdate,
"fno" to fno,
"ieFlag" to "E", // 出港
).toRequestBody()
)
}) {
onSuccess = {
if (it.verifySuccess() && it.data != null) {
val flight = it.data!!
// 目的站:航班查询返回,自动填充
destPort.value = flight.fdest.noNull()
// 始发站下拉:始发港 + 经停港(可逗号分隔多个)
val list = mutableListOf(KeyValue(flight.fdep.noNull(), flight.fdep.noNull()))
flight.jtz.split(",").forEach { stop ->
val s = stop.trim()
if (s.isNotEmpty()) list.add(KeyValue(s, s))
}
depPortList.value = list
depPort.value = flight.fdep.noNull()
} else {
depPortList.value = emptyList()
depPort.value = ""
destPort.value = ""
}
}
onFailed = { _, _ ->
depPortList.value = emptyList()
depPort.value = ""
destPort.value = ""
}
}
}
// ========== 统计信息 ========== // ========== 统计信息 ==========
val totalCount = MutableLiveData("0") // 合计票数 val totalCount = MutableLiveData("0") // 合计票数
@@ -199,6 +271,8 @@ class IntExpLoadViewModel : BasePageViewModel() {
fdate = flightDate.value?.ifEmpty { null }, fdate = flightDate.value?.ifEmpty { null },
fno = flightNo.value?.ifEmpty { null }, fno = flightNo.value?.ifEmpty { null },
wbNo = waybillNo.value?.ifEmpty { null }, wbNo = waybillNo.value?.ifEmpty { null },
dep = depPort.value?.ifEmpty { null },
dest = destPort.value?.ifEmpty { null },
pageNum = pageModel.page, pageNum = pageModel.page,
pageSize = pageModel.limit pageSize = pageModel.limit
) )
@@ -210,7 +284,9 @@ class IntExpLoadViewModel : BasePageViewModel() {
val totalParams = GjcCheckInPage( val totalParams = GjcCheckInPage(
fdate = flightDate.value?.ifEmpty { null }, fdate = flightDate.value?.ifEmpty { null },
fno = flightNo.value?.ifEmpty { null }, fno = flightNo.value?.ifEmpty { null },
wbNo = waybillNo.value?.ifEmpty { null } wbNo = waybillNo.value?.ifEmpty { null },
dep = depPort.value?.ifEmpty { null },
dest = destPort.value?.ifEmpty { null }
).toRequestBody() ).toRequestBody()
// 获取列表 (带Loading) // 获取列表 (带Loading)

View File

@@ -37,6 +37,7 @@
android:layout_weight="1" android:layout_weight="1"
hint='@{"请选择航班日期"}' hint='@{"请选择航班日期"}'
icon="@{@drawable/img_date}" icon="@{@drawable/img_date}"
setRefreshCallBack="@{viewModel::onFlightDateInputComplete}"
type="@{SearchLayoutType.DATE}" type="@{SearchLayoutType.DATE}"
value="@={viewModel.flightDate}" /> value="@={viewModel.flightDate}" />
@@ -46,10 +47,31 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
hint='@{"请输入航班号"}' hint='@{"请输入航班号"}'
setRefreshCallBack="@{viewModel::onFlightNoInputComplete}"
type="@{SearchLayoutType.INPUT}" type="@{SearchLayoutType.INPUT}"
value="@={viewModel.flightNo}" value="@={viewModel.flightNo}"
setUpperCaseAlphanumeric="@{true}" /> setUpperCaseAlphanumeric="@{true}" />
<!-- 始发站(下拉选择:始发港 + 经停港) -->
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
hint='@{"始发站"}'
type="@{SearchLayoutType.SPINNER}"
list="@{viewModel.depPortList}"
value="@={viewModel.depPort}" />
<!-- 目的站(航班查询自动填充,不可编辑) -->
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
enable="@{false}"
hint='@{"目的站"}'
type="@{SearchLayoutType.INPUT}"
value="@={viewModel.destPort}" />
<!-- 运单号 --> <!-- 运单号 -->
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout <com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
android:layout_width="0dp" android:layout_width="0dp"
@@ -71,10 +93,10 @@
<LinearLayout <LinearLayout
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.6"
android:gravity="center_vertical|start" android:gravity="center_vertical|start"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingHorizontal="24dp"> android:paddingHorizontal="12dp">
<ImageView <ImageView
android:layout_width="36dp" android:layout_width="36dp"

View File

@@ -11,7 +11,7 @@
</data> </data>
<LinearLayout <LinearLayout
android:layout_width="500dp" android:layout_width="480dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_radius_10" android:background="@drawable/bg_dialog_radius_10"
android:gravity="center_horizontal" android:gravity="center_horizontal"
@@ -28,33 +28,26 @@
android:textSize="18sp" android:textSize="18sp"
android:textStyle="bold" /> android:textStyle="bold" />
<!-- 航班信息显示 -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="15dp"
android:text='@{"航班:" + model.flightInfo}'
android:textColor="@color/text_normal"
android:textSize="16sp"
android:textStyle="bold" />
<!-- 分配人下拉选择 --> <!-- 分配人下拉选择 -->
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="20dp" android:layout_marginHorizontal="30dp"
android:gravity="center_vertical"> android:layout_marginTop="30dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="分配人:" android:text="分配人:"
android:textColor="@color/text_normal"
android:textSize="16sp" /> android:textSize="16sp" />
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout <com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
android:layout_width="240dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1"
type="@{SearchLayoutType.SPINNER}" type="@{SearchLayoutType.SPINNER}"
list="@{model.assembleCompanyList}" list="@{model.assembleCompanyList}"
value="@={model.allocator}" /> value="@={model.allocator}" />

View File

@@ -11,7 +11,7 @@
</data> </data>
<LinearLayout <LinearLayout
android:layout_width="600dp" android:layout_width="480dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_f2_radius_10" android:background="@drawable/bg_dialog_f2_radius_10"
android:gravity="center_horizontal" android:gravity="center_horizontal"
@@ -130,7 +130,7 @@
<TextView <TextView
style="@style/tv_bottom_btn" style="@style/tv_bottom_btn"
android:onClick="@{()->model.onConfirmClick()}" android:onClick="@{()->model.onConfirmClick()}"
android:text="保存" /> android:text="确定" />
</LinearLayout> </LinearLayout>

View File

@@ -11,7 +11,7 @@
</data> </data>
<LinearLayout <LinearLayout
android:layout_width="600dp" android:layout_width="480dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_f2_radius_10" android:background="@drawable/bg_dialog_f2_radius_10"
android:gravity="center_horizontal" android:gravity="center_horizontal"
@@ -79,7 +79,7 @@
<TextView <TextView
style="@style/tv_bottom_btn" style="@style/tv_bottom_btn"
android:onClick="@{()->model.onSaveClick()}" android:onClick="@{()->model.onSaveClick()}"
android:text="保存" /> android:text="确定" />
</LinearLayout> </LinearLayout>

View File

@@ -11,7 +11,7 @@
</data> </data>
<LinearLayout <LinearLayout
android:layout_width="600dp" android:layout_width="480dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_f2_radius_10" android:background="@drawable/bg_dialog_f2_radius_10"
android:gravity="center_horizontal" android:gravity="center_horizontal"
@@ -79,7 +79,7 @@
<TextView <TextView
style="@style/tv_bottom_btn" style="@style/tv_bottom_btn"
android:onClick="@{()->model.onSaveClick()}" android:onClick="@{()->model.onSaveClick()}"
android:text="保存" /> android:text="确定" />
</LinearLayout> </LinearLayout>

View File

@@ -11,7 +11,7 @@
</data> </data>
<LinearLayout <LinearLayout
android:layout_width="600dp" android:layout_width="480dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_f2_radius_10" android:background="@drawable/bg_dialog_f2_radius_10"
android:gravity="center_horizontal" android:gravity="center_horizontal"
@@ -130,7 +130,7 @@
<TextView <TextView
style="@style/tv_bottom_btn" style="@style/tv_bottom_btn"
android:onClick="@{()->model.onConfirmClick()}" android:onClick="@{()->model.onConfirmClick()}"
android:text="保存" /> android:text="确定" />
</LinearLayout> </LinearLayout>

View File

@@ -11,7 +11,7 @@
</data> </data>
<LinearLayout <LinearLayout
android:layout_width="600dp" android:layout_width="480dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_f2_radius_10" android:background="@drawable/bg_dialog_f2_radius_10"
android:gravity="center_horizontal" android:gravity="center_horizontal"
@@ -79,7 +79,7 @@
<TextView <TextView
style="@style/tv_bottom_btn" style="@style/tv_bottom_btn"
android:onClick="@{()->model.onSaveClick()}" android:onClick="@{()->model.onSaveClick()}"
android:text="保存" /> android:text="确定" />
</LinearLayout> </LinearLayout>

View File

@@ -11,7 +11,7 @@
</data> </data>
<LinearLayout <LinearLayout
android:layout_width="600dp" android:layout_width="480dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_f2_radius_10" android:background="@drawable/bg_dialog_f2_radius_10"
android:gravity="center_horizontal" android:gravity="center_horizontal"
@@ -79,7 +79,7 @@
<TextView <TextView
style="@style/tv_bottom_btn" style="@style/tv_bottom_btn"
android:onClick="@{()->model.onSaveClick()}" android:onClick="@{()->model.onSaveClick()}"
android:text="保存" /> android:text="确定" />
</LinearLayout> </LinearLayout>

View File

@@ -11,7 +11,7 @@
</data> </data>
<LinearLayout <LinearLayout
android:layout_width="600dp" android:layout_width="480dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_f2_radius_10" android:background="@drawable/bg_dialog_f2_radius_10"
android:gravity="center_horizontal" android:gravity="center_horizontal"
@@ -78,7 +78,7 @@
<TextView <TextView
style="@style/tv_bottom_btn" style="@style/tv_bottom_btn"
android:onClick="@{()->model.onSaveClick()}" android:onClick="@{()->model.onSaveClick()}"
android:text="保存" /> android:text="确定" />
</LinearLayout> </LinearLayout>

View File

@@ -11,7 +11,7 @@
</data> </data>
<LinearLayout <LinearLayout
android:layout_width="600dp" android:layout_width="480dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_f2_radius_10" android:background="@drawable/bg_dialog_f2_radius_10"
android:gravity="center_horizontal" android:gravity="center_horizontal"

View File

@@ -11,7 +11,7 @@
</data> </data>
<LinearLayout <LinearLayout
android:layout_width="600dp" android:layout_width="480dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_f2_radius_10" android:background="@drawable/bg_dialog_f2_radius_10"
android:gravity="center_horizontal" android:gravity="center_horizontal"
@@ -130,7 +130,7 @@
<TextView <TextView
style="@style/tv_bottom_btn" style="@style/tv_bottom_btn"
android:onClick="@{()->model.onConfirmClick()}" android:onClick="@{()->model.onConfirmClick()}"
android:text="保存" /> android:text="确定" />
</LinearLayout> </LinearLayout>

View File

@@ -11,7 +11,7 @@
</data> </data>
<LinearLayout <LinearLayout
android:layout_width="600dp" android:layout_width="480dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_f2_radius_10" android:background="@drawable/bg_dialog_f2_radius_10"
android:gravity="center_horizontal" android:gravity="center_horizontal"
@@ -79,7 +79,7 @@
<TextView <TextView
style="@style/tv_bottom_btn" style="@style/tv_bottom_btn"
android:onClick="@{()->model.onSaveClick()}" android:onClick="@{()->model.onSaveClick()}"
android:text="保存" /> android:text="确定" />
</LinearLayout> </LinearLayout>

View File

@@ -94,7 +94,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
@@ -140,7 +140,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.7"
android:gravity="center_vertical"> android:gravity="center_vertical">
<TextView <TextView
@@ -217,7 +217,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
@@ -272,7 +272,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.7"
android:gravity="center_vertical"> android:gravity="center_vertical">
<TextView <TextView

View File

@@ -42,7 +42,7 @@
android:layout_weight="1" android:layout_weight="1"
android:orientation="vertical"> android:orientation="vertical">
<!-- 第一行:运单号、状态、件数、重量 --> <!-- 第一行:运单号、状态、件数、重量、特码 -->
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -53,7 +53,7 @@
<LinearLayout <LinearLayout
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"
android:orientation="horizontal"> android:orientation="horizontal">
@@ -63,7 +63,7 @@
android:text="运单号:" android:text="运单号:"
android:textColor="@color/text_normal" android:textColor="@color/text_normal"
android:textSize="15sp" android:textSize="15sp"
completeSpace="@{4}" /> completeSpace="@{5}" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@@ -79,7 +79,7 @@
<LinearLayout <LinearLayout
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.9"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal"> android:orientation="horizontal">
@@ -89,7 +89,7 @@
android:text="状态:" android:text="状态:"
android:textColor="@color/text_normal" android:textColor="@color/text_normal"
android:textSize="15sp" android:textSize="15sp"
completeSpace="@{5}" /> completeSpace="@{4}" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@@ -104,7 +104,7 @@
<LinearLayout <LinearLayout
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.9"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal"> android:orientation="horizontal">
@@ -114,7 +114,7 @@
android:text="件数:" android:text="件数:"
android:textColor="@color/text_normal" android:textColor="@color/text_normal"
android:textSize="15sp" android:textSize="15sp"
completeSpace="@{4}" /> completeSpace="@{3}" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@@ -129,7 +129,7 @@
<LinearLayout <LinearLayout
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"
android:orientation="horizontal"> android:orientation="horizontal">
@@ -139,7 +139,7 @@
android:text="重量:" android:text="重量:"
android:textColor="@color/text_normal" android:textColor="@color/text_normal"
android:textSize="15sp" android:textSize="15sp"
completeSpace="@{5}" /> completeSpace="@{6}" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@@ -150,21 +150,11 @@
</LinearLayout> </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 <LinearLayout
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.9"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal"> android:orientation="horizontal">
@@ -174,7 +164,7 @@
android:text="特码:" android:text="特码:"
android:textColor="@color/text_normal" android:textColor="@color/text_normal"
android:textSize="15sp" android:textSize="15sp"
completeSpace="@{4}" /> completeSpace="@{3}" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@@ -185,11 +175,21 @@
</LinearLayout> </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 <LinearLayout
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"
android:orientation="horizontal"> android:orientation="horizontal">
@@ -214,7 +214,7 @@
<LinearLayout <LinearLayout
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.9"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal"> android:orientation="horizontal">
@@ -235,11 +235,36 @@
</LinearLayout> </LinearLayout>
<!-- 航程 -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.9"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="航程:"
android:textColor="@color/text_normal"
android:textSize="15sp"
completeSpace="@{3}" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{bean.rangeText}"
android:textColor="@color/text_normal"
android:textSize="15sp" />
</LinearLayout>
<!-- 品名(中) --> <!-- 品名(中) -->
<LinearLayout <LinearLayout
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"
android:orientation="horizontal"> android:orientation="horizontal">
@@ -249,7 +274,7 @@
android:text="品名(中)" android:text="品名(中)"
android:textColor="@color/text_normal" android:textColor="@color/text_normal"
android:textSize="15sp" android:textSize="15sp"
completeSpace="@{5}" /> completeSpace="@{6}" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@@ -262,6 +287,13 @@
</LinearLayout> </LinearLayout>
<!-- 占位 (与第一行特码列对齐) -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.9"
android:orientation="horizontal" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

View File

@@ -16,9 +16,14 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="vertical">
android:paddingHorizontal="10dp"
android:paddingVertical="8dp"> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="8dp"
android:orientation="horizontal"
android:paddingHorizontal="10dp">
<!-- 选项(单选框) --> <!-- 选项(单选框) -->
<ImageView <ImageView
@@ -85,6 +90,12 @@
android:textColor="@color/text_normal" android:textColor="@color/text_normal"
android:textSize="14sp" /> android:textSize="14sp" />
</LinearLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/sub_list_divider" />
</LinearLayout> </LinearLayout>
</layout> </layout>

View File

@@ -19,7 +19,7 @@
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal">
<!-- 运单号 (weight=1.5) --> <!-- 运单号 (weight=1.5) -->
<LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1.0" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1.0" android:orientation="horizontal">
<TextView completeSpace="@{4}" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="运单号:" android:textColor="@color/text_normal" android:textSize="15sp"/> <TextView completeSpace="@{5}" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="运单号:" android:textColor="@color/text_normal" android:textSize="15sp"/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.wbNo}" android:textColor="@color/colorPrimary" android:textSize="15sp" android:textStyle="bold"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.wbNo}" android:textColor="@color/colorPrimary" android:textSize="15sp" android:textStyle="bold"/>
</LinearLayout> </LinearLayout>
<!-- 状态 (weight=1) --> <!-- 状态 (weight=1) -->
@@ -43,29 +43,29 @@
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{String.valueOf((int)bean.weight)}" android:textColor="@color/text_normal" android:textSize="15sp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{String.valueOf((int)bean.weight)}" android:textColor="@color/text_normal" android:textSize="15sp"/>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
<!-- 第二行:特码、始发站、目的站、运单类型、分单数 --> <!-- 第二行:航班日期、航班号、航程、运单类型、分单数 -->
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:orientation="horizontal"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:orientation="horizontal">
<!-- 特码 (weight=1.5) --> <!-- 航班日期 (weight=1.0) -->
<LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1.0" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1.0" 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="15sp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" completeSpace="@{5}" android:text="航班日期" android:textColor="@color/text_normal" android:textSize="15sp"/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.spCode}" android:textColor="@color/text_normal" android:textSize="15sp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.flightDateText}" android:textColor="@color/text_normal" android:textSize="15sp"/>
</LinearLayout> </LinearLayout>
<!-- 始发站 (weight=1) --> <!-- 航班号 (weight=0.8) -->
<LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.8" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.8" 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="15sp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" completeSpace="@{4}" android:text="航班号" android:textColor="@color/text_normal" android:textSize="15sp"/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.dep}" android:textColor="@color/text_normal" android:textSize="15sp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.fno}" android:textColor="@color/text_normal" android:textSize="15sp"/>
</LinearLayout> </LinearLayout>
<!-- 目的站 (weight=1) --> <!-- 航程 (weight=0.8) -->
<LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.8" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.8" 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="15sp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" completeSpace="@{4}" android:text="航程" android:textColor="@color/text_normal" android:textSize="15sp"/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.dest}" android:textColor="@color/text_normal" android:textSize="15sp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.rangeText}" android:textColor="@color/text_normal" android:textSize="15sp"/>
</LinearLayout> </LinearLayout>
<!-- 运单类型 (weight=1) --> <!-- 运单类型 (weight=1.2) -->
<LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1.2" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1.2" android:orientation="horizontal">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" completeSpace="@{5}" android:text="运单类型:" android:textColor="@color/text_normal" android:textSize="15sp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" completeSpace="@{5}" android:text="运单类型:" android:textColor="@color/text_normal" android:textSize="15sp"/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.awbName}" android:textColor="@color/text_normal" android:textSize="15sp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.awbName}" android:textColor="@color/text_normal" android:textSize="15sp"/>
</LinearLayout> </LinearLayout>
<!-- 分单数 (weight=1) --> <!-- 分单数 (weight=0.8) -->
<LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.8" android:orientation="horizontal"> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.8" 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="15sp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" completeSpace="@{4}" android:text="分单数:" android:textColor="@color/text_normal" android:textSize="15sp"/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{String.valueOf(bean.haWbNumber)}" android:textColor="@color/text_normal" android:textSize="15sp"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{String.valueOf(bean.haWbNumber)}" android:textColor="@color/text_normal" android:textSize="15sp"/>

View File

@@ -11,7 +11,7 @@
</data> </data>
<LinearLayout <LinearLayout
android:layout_width="600dp" android:layout_width="480dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_f2_radius_10" android:background="@drawable/bg_dialog_f2_radius_10"
android:gravity="center_horizontal" android:gravity="center_horizontal"
@@ -130,7 +130,7 @@
<TextView <TextView
style="@style/tv_bottom_btn" style="@style/tv_bottom_btn"
android:onClick="@{()->model.onConfirmClick()}" android:onClick="@{()->model.onConfirmClick()}"
android:text="保存" /> android:text="确定" />
</LinearLayout> </LinearLayout>

View File

@@ -11,7 +11,7 @@
</data> </data>
<LinearLayout <LinearLayout
android:layout_width="600dp" android:layout_width="480dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_f2_radius_10" android:background="@drawable/bg_dialog_f2_radius_10"
android:gravity="center_horizontal" android:gravity="center_horizontal"
@@ -79,7 +79,7 @@
<TextView <TextView
style="@style/tv_bottom_btn" style="@style/tv_bottom_btn"
android:onClick="@{()->model.onSaveClick()}" android:onClick="@{()->model.onSaveClick()}"
android:text="保存" /> android:text="确定" />
</LinearLayout> </LinearLayout>

View File

@@ -11,7 +11,7 @@
</data> </data>
<LinearLayout <LinearLayout
android:layout_width="600dp" android:layout_width="480dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_f2_radius_10" android:background="@drawable/bg_dialog_f2_radius_10"
android:gravity="center_horizontal" android:gravity="center_horizontal"
@@ -79,7 +79,7 @@
<TextView <TextView
style="@style/tv_bottom_btn" style="@style/tv_bottom_btn"
android:onClick="@{()->model.onSaveClick()}" android:onClick="@{()->model.onSaveClick()}"
android:text="保存" /> android:text="确定" />
</LinearLayout> </LinearLayout>

View File

@@ -11,7 +11,7 @@
</data> </data>
<LinearLayout <LinearLayout
android:layout_width="600dp" android:layout_width="480dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_f2_radius_10" android:background="@drawable/bg_dialog_f2_radius_10"
android:gravity="center_horizontal" android:gravity="center_horizontal"
@@ -78,7 +78,7 @@
<TextView <TextView
style="@style/tv_bottom_btn" style="@style/tv_bottom_btn"
android:onClick="@{()->model.onSaveClick()}" android:onClick="@{()->model.onSaveClick()}"
android:text="保存" /> android:text="确定" />
</LinearLayout> </LinearLayout>

View File

@@ -11,7 +11,7 @@
</data> </data>
<LinearLayout <LinearLayout
android:layout_width="600dp" android:layout_width="480dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_f2_radius_10" android:background="@drawable/bg_dialog_f2_radius_10"
android:gravity="center_horizontal" android:gravity="center_horizontal"
@@ -130,7 +130,7 @@
<TextView <TextView
style="@style/tv_bottom_btn" style="@style/tv_bottom_btn"
android:onClick="@{()->model.onConfirmClick()}" android:onClick="@{()->model.onConfirmClick()}"
android:text="保存" /> android:text="确定" />
</LinearLayout> </LinearLayout>

View File

@@ -11,7 +11,7 @@
</data> </data>
<LinearLayout <LinearLayout
android:layout_width="600dp" android:layout_width="480dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_f2_radius_10" android:background="@drawable/bg_dialog_f2_radius_10"
android:gravity="center_horizontal" android:gravity="center_horizontal"
@@ -79,7 +79,7 @@
<TextView <TextView
style="@style/tv_bottom_btn" style="@style/tv_bottom_btn"
android:onClick="@{()->model.onSaveClick()}" android:onClick="@{()->model.onSaveClick()}"
android:text="保存" /> android:text="确定" />
</LinearLayout> </LinearLayout>

View File

@@ -16,9 +16,14 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="vertical">
android:paddingHorizontal="10dp"
android:paddingVertical="8dp"> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="8dp"
android:orientation="horizontal"
android:paddingHorizontal="10dp">
<!-- 选项(单选框) --> <!-- 选项(单选框) -->
<ImageView <ImageView
@@ -131,6 +136,12 @@
android:textColor="@color/text_normal" android:textColor="@color/text_normal"
android:textSize="14sp" /> android:textSize="14sp" />
</LinearLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/sub_list_divider" />
</LinearLayout> </LinearLayout>
</layout> </layout>

View File

@@ -410,7 +410,7 @@
<TextView <TextView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.6" android:layout_weight="1.0"
android:gravity="center" android:gravity="center"
android:text="件数" android:text="件数"
android:textSize="14sp" android:textSize="14sp"
@@ -419,7 +419,7 @@
<TextView <TextView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.6" android:layout_weight="1.0"
android:gravity="center" android:gravity="center"
android:text="重量" android:text="重量"
android:textSize="14sp" android:textSize="14sp"
@@ -428,7 +428,7 @@
<TextView <TextView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.6" android:layout_weight="1.0"
android:gravity="center" android:gravity="center"
android:text="原始舱单" android:text="原始舱单"
android:textSize="14sp" android:textSize="14sp"
@@ -437,7 +437,7 @@
<TextView <TextView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="0.6" android:layout_weight="1.0"
android:gravity="center" android:gravity="center"
android:text="理货报告" android:text="理货报告"
android:textSize="14sp" android:textSize="14sp"
@@ -446,7 +446,7 @@
<TextView <TextView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1.8" android:layout_weight="1.0"
android:gravity="center" android:gravity="center"
android:text="品名(中)" android:text="品名(中)"
android:textSize="14sp" android:textSize="14sp"

View File

@@ -16,9 +16,14 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="vertical">
android:paddingHorizontal="10dp"
android:paddingVertical="8dp"> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="8dp"
android:orientation="horizontal"
android:paddingHorizontal="10dp">
<!-- 选项(单选框) --> <!-- 选项(单选框) -->
<ImageView <ImageView
@@ -61,7 +66,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_weight="0.6" android:layout_weight="1.0"
android:gravity="center" android:gravity="center"
android:maxLines="1" android:maxLines="1"
android:ellipsize="end" android:ellipsize="end"
@@ -74,7 +79,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_weight="0.6" android:layout_weight="1.0"
android:gravity="center" android:gravity="center"
android:maxLines="1" android:maxLines="1"
android:ellipsize="end" android:ellipsize="end"
@@ -87,7 +92,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_weight="0.6" android:layout_weight="1.0"
android:gravity="center" android:gravity="center"
android:maxLines="1" android:maxLines="1"
android:ellipsize="end" android:ellipsize="end"
@@ -100,7 +105,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_weight="0.6" android:layout_weight="1.0"
android:gravity="center" android:gravity="center"
android:maxLines="1" android:maxLines="1"
android:ellipsize="end" android:ellipsize="end"
@@ -113,7 +118,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_weight="1.8" android:layout_weight="1.0"
android:gravity="center" android:gravity="center"
android:maxLines="1" android:maxLines="1"
android:ellipsize="end" android:ellipsize="end"
@@ -121,6 +126,12 @@
android:textColor="@color/text_normal" android:textColor="@color/text_normal"
android:textSize="14sp" /> android:textSize="14sp" />
</LinearLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/sub_list_divider" />
</LinearLayout> </LinearLayout>
</layout> </layout>

View File

@@ -16,9 +16,14 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="vertical">
android:paddingHorizontal="10dp"
android:paddingVertical="8dp"> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="8dp"
android:orientation="horizontal"
android:paddingHorizontal="10dp">
<!-- 选项(单选框) --> <!-- 选项(单选框) -->
<ImageView <ImageView
@@ -85,6 +90,12 @@
android:textColor="@color/text_normal" android:textColor="@color/text_normal"
android:textSize="14sp" /> android:textSize="14sp" />
</LinearLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/sub_list_divider" />
</LinearLayout> </LinearLayout>
</layout> </layout>

View File

@@ -16,9 +16,14 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="vertical">
android:paddingHorizontal="10dp"
android:paddingVertical="8dp"> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginVertical="8dp"
android:orientation="horizontal"
android:paddingHorizontal="10dp">
<!-- 选项(单选框) --> <!-- 选项(单选框) -->
<ImageView <ImageView
@@ -131,6 +136,12 @@
android:textColor="@color/text_normal" android:textColor="@color/text_normal"
android:textSize="14sp" /> android:textSize="14sp" />
</LinearLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/sub_list_divider" />
</LinearLayout> </LinearLayout>
</layout> </layout>