From bea8a8c8c864a01584e74ba1b003488ebb4247b7 Mon Sep 17 00:00:00 2001 From: YANGJIANKUAN Date: Thu, 27 Nov 2025 11:28:50 +0800 Subject: [PATCH] feat: ui opt --- .../module_base/bean/GjcCheckInRecord.kt | 16 +- .../ui/weight/data/layout/PadDataLayoutNew.kt | 6 + .../gjc/holder/GjcCheckInRecordViewHolder.kt | 30 -- .../activity_gjc_weighing_record_details.xml | 331 ++++++++++-------- .../res/layout/item_gjc_check_in_record.xml | 130 ++----- 5 files changed, 236 insertions(+), 277 deletions(-) diff --git a/module_base/src/main/java/com/lukouguoji/module_base/bean/GjcCheckInRecord.kt b/module_base/src/main/java/com/lukouguoji/module_base/bean/GjcCheckInRecord.kt index b048138..488afec 100644 --- a/module_base/src/main/java/com/lukouguoji/module_base/bean/GjcCheckInRecord.kt +++ b/module_base/src/main/java/com/lukouguoji/module_base/bean/GjcCheckInRecord.kt @@ -18,4 +18,18 @@ data class GjcCheckInRecord( var weight: Double = 0.0, // 运抵重量 var volume: Double = 0.0, // 运抵体积 var whId: Long = 0 // GJC_WAREHOUSE.ID -) +) { + // 件数的字符串表示(用于双向绑定) + var pcStr: String + get() = if (pc == 0L) "" else pc.toString() + set(value) { + pc = value.toLongOrNull() ?: 0L + } + + // 重量的字符串表示(用于双向绑定) + var weightStr: String + get() = if (weight == 0.0) "" else weight.toString() + set(value) { + weight = value.toDoubleOrNull() ?: 0.0 + } +} diff --git a/module_base/src/main/java/com/lukouguoji/module_base/ui/weight/data/layout/PadDataLayoutNew.kt b/module_base/src/main/java/com/lukouguoji/module_base/ui/weight/data/layout/PadDataLayoutNew.kt index 1446182..d0497b9 100644 --- a/module_base/src/main/java/com/lukouguoji/module_base/ui/weight/data/layout/PadDataLayoutNew.kt +++ b/module_base/src/main/java/com/lukouguoji/module_base/ui/weight/data/layout/PadDataLayoutNew.kt @@ -119,6 +119,12 @@ class PadDataLayoutNew : FrameLayout { loadImage(iv, value) } + var inputType: Int = android.text.InputType.TYPE_CLASS_TEXT + set(value) { + field = value + et.inputType = value + } + /** * 刷新事件回调 */ diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/holder/GjcCheckInRecordViewHolder.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/holder/GjcCheckInRecordViewHolder.kt index 562247f..38c084c 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/holder/GjcCheckInRecordViewHolder.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/holder/GjcCheckInRecordViewHolder.kt @@ -1,7 +1,5 @@ package com.lukouguoji.gjc.holder -import android.text.Editable -import android.text.TextWatcher import android.view.View import com.lukouguoji.gjc.databinding.ItemGjcCheckInRecordBinding import com.lukouguoji.module_base.base.BaseViewHolder @@ -14,8 +12,6 @@ class GjcCheckInRecordViewHolder(view: View) : BaseViewHolder(view) { private var isEditMode: Boolean = false - private var pcTextWatcher: TextWatcher? = null - private var weightTextWatcher: TextWatcher? = null fun updateEditMode(editMode: Boolean) { this.isEditMode = editMode @@ -26,32 +22,6 @@ class GjcCheckInRecordViewHolder(view: View) : binding.record = record binding.isEditMode = isEditMode binding.position = position // 传入位置用于显示序号 - - // 移除旧的监听器 - pcTextWatcher?.let { binding.etPc.removeTextChangedListener(it) } - weightTextWatcher?.let { binding.etWeight.removeTextChangedListener(it) } - - // 在编辑模式下监听EditText输入 - if (isEditMode) { - pcTextWatcher = object : TextWatcher { - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {} - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {} - override fun afterTextChanged(s: Editable?) { - record.pc = s?.toString()?.toLongOrNull() ?: 0L - } - } - binding.etPc.addTextChangedListener(pcTextWatcher) - - weightTextWatcher = object : TextWatcher { - override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {} - override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {} - override fun afterTextChanged(s: Editable?) { - record.weight = s?.toString()?.toDoubleOrNull() ?: 0.0 - } - } - binding.etWeight.addTextChangedListener(weightTextWatcher) - } - binding.executePendingBindings() } } diff --git a/module_gjc/src/main/res/layout/activity_gjc_weighing_record_details.xml b/module_gjc/src/main/res/layout/activity_gjc_weighing_record_details.xml index b712db1..72a13e4 100644 --- a/module_gjc/src/main/res/layout/activity_gjc_weighing_record_details.xml +++ b/module_gjc/src/main/res/layout/activity_gjc_weighing_record_details.xml @@ -22,145 +22,205 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + android:visibility="@{viewModel.isEditMode ? View.VISIBLE : View.GONE}"> - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - + android:layout_height="64dp" + android:background="@color/white" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingHorizontal="15dp"> @@ -191,42 +251,21 @@ + + - - - - - - - - - - - + diff --git a/module_gjc/src/main/res/layout/item_gjc_check_in_record.xml b/module_gjc/src/main/res/layout/item_gjc_check_in_record.xml index 77fb588..1696bd7 100644 --- a/module_gjc/src/main/res/layout/item_gjc_check_in_record.xml +++ b/module_gjc/src/main/res/layout/item_gjc_check_in_record.xml @@ -5,6 +5,8 @@ + + @@ -39,128 +41,56 @@ android:textStyle="bold" /> - - - - - - - - - - + enable="@{isEditMode}" + hint="@{`件数`}" + inputType="@{android.text.InputType.TYPE_CLASS_NUMBER}" + title="@{`件数`}" + titleLength="@{5}" + type="@{DataLayoutType.INPUT}" + value="@={record.pcStr}" /> - - - - - - - - - - + enable="@{isEditMode}" + hint="@{`重量`}" + inputType="@{android.text.InputType.TYPE_CLASS_NUMBER | android.text.InputType.TYPE_NUMBER_FLAG_DECIMAL}" + title="@{`重量`}" + titleLength="@{5}" + type="@{DataLayoutType.INPUT}" + value="@={record.weightStr}" /> - - - - - - + enable="@{false}" + title="@{`托盘自重`}" + titleLength="@{5}" + type="@{DataLayoutType.INPUT}" + value="@{`100`}" /> - - - - - - + enable="@{false}" + title="@{`计重时间`}" + titleLength="@{5}" + type="@{DataLayoutType.INPUT}" + value="@{record.opDate}" />