feat: ULD新增编辑表单增加来源、入库时间、所在港字段

- 编辑表单新增来源(空运/陆运)、入库时间、所在港(默认HFE)三个字段
- 列表项同步显示来源、所在港、位置、入库时间,去掉备注展示并收窄首列
- PadDataLayoutNew 新增 DATETIME 类型,支持年月日时分秒选择

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-08-27 15:30:23 +08:00
parent 567b76014b
commit dcb335ecdf
6 changed files with 153 additions and 13 deletions

View File

@@ -19,6 +19,14 @@ data class ULDBean(
var status: String = "",
// 备注
var remark: String = "",
// 来源(空运、陆运)
var source: String = "",
// 入库时间 yyyy-MM-dd HH:mm:ss
var inStoreTime: String = "",
// 所在港
var nowPort: String = "",
// 位置信息
var nowPosition: String = "",
){
val checked = ObservableBoolean(false)

View File

@@ -211,7 +211,7 @@ class PadDataLayout : FrameLayout {
setOnClickListener(null)
}
DataLayoutType.DATE -> {
DataLayoutType.DATE, DataLayoutType.DATETIME -> {
tv.visibility = VISIBLE
et.visibility = GONE
spinner.visibility = GONE
@@ -258,4 +258,5 @@ enum class DataLayoutType {
INPUT, // 文本
SPINNER, // 下拉选择
DATE, // 日期
DATETIME, // 日期时间yyyy-MM-dd HH:mm:ss
}

View File

@@ -25,6 +25,7 @@ import com.lukouguoji.module_base.adapter.visible
import com.lukouguoji.module_base.interfaces.IOnFocusChangeListener
import com.lukouguoji.module_base.interfaces.IOnSpinnerSelected
import com.lukouguoji.module_base.ktx.formatDate
import com.lukouguoji.module_base.ktx.formatDateTime
import com.lukouguoji.module_base.ktx.getActivity
import com.lukouguoji.module_base.ktx.loge
import com.lukouguoji.module_base.util.Common
@@ -182,6 +183,18 @@ class PadDataLayoutNew : FrameLayout {
}
}
// 选择日期时间yyyy-MM-dd HH:mm:ss
private val dateTimeClick: (v: View) -> Unit = {
if (enable) {
Common.onYearMonthDayTime(context.getActivity(), value) { year, month, day, hour, minute, second ->
val calendar = Calendar.getInstance()
calendar.set(year, month - 1, day, hour, minute, second)
value = calendar.time.formatDateTime()
refreshCallBack?.invoke()
}
}
}
init {
initView()
}
@@ -252,7 +265,7 @@ class PadDataLayoutNew : FrameLayout {
setOnClickListener(null)
}
DataLayoutType.DATE -> {
DataLayoutType.DATE, DataLayoutType.DATETIME -> {
tv.visibility = VISIBLE
et.visibility = GONE
spinner.visibility = GONE
@@ -263,7 +276,7 @@ class PadDataLayoutNew : FrameLayout {
iv.layoutParams.width = dp20
iv.layoutParams.height = dp20
setOnClickListener(dateClick)
setOnClickListener(if (type == DataLayoutType.DATETIME) dateTimeClick else dateClick)
}
}
}