From b14649b2285ae77ed628377d9bf8e3de93f818d9 Mon Sep 17 00:00:00 2001 From: YANG JIANKUAN Date: Wed, 16 Sep 2026 12:27:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=9B=BD=E9=99=85=E8=BF=9B=E6=B8=AF?= =?UTF-8?q?=E8=88=B1=E5=8D=95=E6=96=B0=E5=A2=9E/=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E9=A1=B5=E8=88=AA=E7=A8=8B=E4=B8=8D=E5=86=8D=E9=9A=8F=E5=A7=8B?= =?UTF-8?q?=E5=8F=91=E7=AB=99=E7=9B=AE=E7=9A=84=E7=AB=99=E8=81=94=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 航程改为仅由航班信息决定:航班查询成功取航班起始站-目的站, 编辑模式取舱单 fdep-fdest,从列表页带入时取传入的航班始发/目的站; 用户手动修改始发站、目的站时航程保持不变 Co-Authored-By: Claude Fable 5.1 --- .../gjj/viewModel/GjjManifestAddViewModel.kt | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestAddViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestAddViewModel.kt index 55a5ecb..67a8283 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestAddViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestAddViewModel.kt @@ -2,7 +2,6 @@ package com.lukouguoji.gjj.viewModel import android.content.Intent import android.view.View -import androidx.lifecycle.MediatorLiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.viewModelScope import androidx.recyclerview.widget.RecyclerView @@ -103,10 +102,12 @@ class GjjManifestAddViewModel : BaseViewModel(), IOnItemClickListener { fid = flight.fid.noNull() departure.value = flight.fdep.noNull() destination.value = flight.fdest.noNull() + range.value = flight.getHangCheng() } else { fid = "" departure.value = "" destination.value = "" + range.value = "" showToast(it.msg.noNull("获取航班信息失败")) } } @@ -114,6 +115,7 @@ class GjjManifestAddViewModel : BaseViewModel(), IOnItemClickListener { fid = "" departure.value = "" destination.value = "" + range.value = "" } } } @@ -142,15 +144,15 @@ class GjjManifestAddViewModel : BaseViewModel(), IOnItemClickListener { // 目的港 val destination = MutableLiveData("") - // 航程(自动拼接:始发站-目的站) - val range = MediatorLiveData().apply { - val update = { - val dep = departure.value ?: "" - val dest = destination.value ?: "" - value = if (dep.isNotEmpty() || dest.isNotEmpty()) "$dep-$dest" else "" - } - addSource(departure) { update() } - addSource(destination) { update() } + // 航程(航班起始站-航班目的站,仅随航班信息变化,不随用户修改始发站/目的站联动) + val range = MutableLiveData("") + + /** + * 按航班起始站/目的站拼接航程,起始站为空时返回空 + */ + private fun buildRange(fdep: String?, fdest: String?): String { + if (fdep.isNullOrEmpty()) return "" + return "$fdep-${fdest ?: ""}" } // 品名(中) @@ -204,6 +206,8 @@ class GjjManifestAddViewModel : BaseViewModel(), IOnItemClickListener { fid = intent.getStringExtra(Constant.Key.ID).noNull() departure.value = intent.getStringExtra(Constant.Key.DEPARTURE).noNull() destination.value = intent.getStringExtra(Constant.Key.DESTINATION).noNull() + // 列表页传入的是航班的始发站/目的站,用于初始化航程 + range.value = buildRange(departure.value, destination.value) // 回填航班日期和航班号(从列表页传入) val passedFlightDate = intent.getStringExtra("flightDate").noNull() @@ -317,6 +321,7 @@ class GjjManifestAddViewModel : BaseViewModel(), IOnItemClickListener { billingWeight.value = manifest.cashWeight.toString() departure.value = manifest.origin destination.value = manifest.dest + range.value = buildRange(manifest.fdep, manifest.fdest) goodsNameCn.value = manifest.goodsCn goodsNameEn.value = manifest.goods unNumber.value = manifest.unNumber @@ -362,6 +367,7 @@ class GjjManifestAddViewModel : BaseViewModel(), IOnItemClickListener { actualWeight.value = manifest.weight.toString() departure.value = manifest.origin destination.value = manifest.dest + range.value = buildRange(manifest.fdep, manifest.fdest) goodsNameCn.value = manifest.goodsCn goodsNameEn.value = manifest.goods unNumber.value = manifest.unNumber