From 2c8fa689a54d57d8551b1d407af76bbf2b9d6470 Mon Sep 17 00:00:00 2001 From: YANG JIANKUAN Date: Wed, 14 Oct 2026 20:20:57 -0700 Subject: [PATCH] =?UTF-8?q?fix(gjc):=20=E5=BC=80=E5=A7=8B=E8=AE=A1?= =?UTF-8?q?=E9=87=8D=E6=89=8B=E6=9C=BA=E7=AB=AF=E5=8E=BB=E6=8E=89=E5=9C=B0?= =?UTF-8?q?=E7=A3=85=E9=87=8D=E9=87=8F=EF=BC=8C=E5=B9=B3=E6=9D=BF=E8=BD=A6?= =?UTF-8?q?=E8=87=AA=E9=87=8D=E5=B7=A6=E5=AF=B9=E9=BD=90=E5=B9=B6=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=B8=A6=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 手机布局删除「地磅重量」;手机端不再按「地磅重量 − 托盘总重」自动计算运抵重量 (地磅为 0 时会被写成 "0"),改为手输、默认空白;平板逻辑不变 - 「平板车自重」改用不可编辑的 INPUT 形态,与其他行一样左对齐 - 运单加载后若已带平板车号,直接回查自重(平板共用 ViewModel,一并生效) - PhoneFormRow 的 INPUT 形态补上输入完成回调(失焦 / 键盘完成、下一项), 原先从不触发,手输平板车号、运单号后不会回查 Refs: 禅道 Bug #621 Co-Authored-By: Claude Opus 5.5 --- .../module_base/ui/weight/phone/PhoneFormRow.kt | 15 +++++++++++++++ .../gjc/viewModel/GjcWeighingStartViewModel.kt | 5 +++++ .../res/layout/activity_gjc_weighing_start.xml | 16 +++++----------- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/module_base/src/main/java/com/lukouguoji/module_base/ui/weight/phone/PhoneFormRow.kt b/module_base/src/main/java/com/lukouguoji/module_base/ui/weight/phone/PhoneFormRow.kt index c3bd10d..c4ebb91 100644 --- a/module_base/src/main/java/com/lukouguoji/module_base/ui/weight/phone/PhoneFormRow.kt +++ b/module_base/src/main/java/com/lukouguoji/module_base/ui/weight/phone/PhoneFormRow.kt @@ -7,6 +7,7 @@ import android.util.AttributeSet import android.util.SparseArray import android.view.Gravity import android.view.View +import android.view.inputmethod.EditorInfo import android.widget.EditText import android.widget.ImageView import android.widget.LinearLayout @@ -136,6 +137,20 @@ class PhoneFormRow @JvmOverloads constructor( } } + // INPUT 输入完成回调(与平板 PadDataLayoutNew 一致:失焦即视为输入完成;另加键盘「完成/下一项」)。 + // 原先 INPUT 形态从不触发 refreshCallBack,平板车号/运单号手输后不会回查(Bug #621) + et.setOnFocusChangeListener { _, hasFocus -> + if (!hasFocus && type == PhoneFormRowType.INPUT) refreshCallBack?.invoke() + } + et.setOnEditorActionListener { _, actionId, _ -> + if (type == PhoneFormRowType.INPUT && + (actionId == EditorInfo.IME_ACTION_DONE || actionId == EditorInfo.IME_ACTION_NEXT) + ) { + refreshCallBack?.invoke() + } + false + } + applyType() } diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcWeighingStartViewModel.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcWeighingStartViewModel.kt index c957e41..eef672e 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcWeighingStartViewModel.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcWeighingStartViewModel.kt @@ -7,6 +7,7 @@ import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.MutableLiveData import androidx.lifecycle.viewModelScope import com.lukouguoji.module_base.base.BaseViewModel +import com.lukouguoji.module_base.util.DeviceUtil import com.lukouguoji.module_base.bean.GjcMaWb import com.lukouguoji.module_base.bean.GjcWeighingBean import com.lukouguoji.module_base.common.Constant @@ -120,6 +121,8 @@ class GjcWeighingStartViewModel : BaseViewModel() { * 自动计算运抵重量:地磅称重 - (托盘数量 × 托盘自重) */ private fun recalculateArriveWeight() { + // 手机端无地磅重量输入(Bug #621),运抵重量手输;否则会被 0 - 托盘总重 覆盖成 "0" + if (DeviceUtil.isPhone()) return val gross = diBangWeight.value?.toDoubleOrNull() ?: 0.0 val trayTotal = getTrayTotalWeight() val net = gross - trayTotal @@ -198,6 +201,8 @@ class GjcWeighingStartViewModel : BaseViewModel() { onSuccess = { result -> maWbBean.value = result.data ?: GjcMaWb() pageRemark.value = maWbBean.value?.remark + // 运单已带平板车号时直接回查自重(原先只在手输车号完成后查询,Bug #621) + onCarIdInputComplete() // 更新航班日期字符串 flightDate.value = result.data?.fdate?.formatDate() ?: "" } diff --git a/module_gjc/src/main/res/layout/activity_gjc_weighing_start.xml b/module_gjc/src/main/res/layout/activity_gjc_weighing_start.xml index cec2360..6d54926 100644 --- a/module_gjc/src/main/res/layout/activity_gjc_weighing_start.xml +++ b/module_gjc/src/main/res/layout/activity_gjc_weighing_start.xml @@ -176,15 +176,7 @@ type="@{PhoneFormRowType.INPUT}" value="@={viewModel.arrivePc}" /> - - + - +