fix: 国际进港舱单编辑页下拉框回填及移除404接口
- 使用 DictUtils checkedValue 机制回填编辑模式下拉框选中项 - 移除已404的 searchCargoType 接口调用 - PadDataLayoutNew 增加 updateSpinnerSilently 防止 adapter 重建覆盖值 - CLAUDE.md 补充编辑表单 SPINNER 回填规范 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -97,7 +97,7 @@ class PadDataLayoutNew : FrameLayout {
|
||||
|
||||
et.hint = value
|
||||
tv.hint = value
|
||||
bindAdapter(spinner, list, hint)
|
||||
updateSpinnerSilently { bindAdapter(spinner, list, hint) }
|
||||
}
|
||||
|
||||
var required = false
|
||||
@@ -106,11 +106,29 @@ class PadDataLayoutNew : FrameLayout {
|
||||
tvM.visibility = if (value) VISIBLE else INVISIBLE
|
||||
}
|
||||
|
||||
private val spinnerCallback = object : IOnSpinnerSelected {
|
||||
override fun onSelected(position: Int) {
|
||||
value = list.getOrNull(position)?.value ?: ""
|
||||
refreshCallBack?.invoke()
|
||||
}
|
||||
}
|
||||
|
||||
private val restoreListenerRunnable = Runnable {
|
||||
bindOnSelected(spinner, spinnerCallback)
|
||||
}
|
||||
|
||||
private fun updateSpinnerSilently(block: () -> Unit) {
|
||||
spinner.onItemSelectedListener = null
|
||||
spinner.removeCallbacks(restoreListenerRunnable)
|
||||
block()
|
||||
onValueSet()
|
||||
spinner.post(restoreListenerRunnable)
|
||||
}
|
||||
|
||||
var list = emptyList<KeyValue>()
|
||||
set(value) {
|
||||
field = value
|
||||
bindAdapter(spinner, value, hint)
|
||||
onValueSet()
|
||||
updateSpinnerSilently { bindAdapter(spinner, value, hint) }
|
||||
}
|
||||
|
||||
var icon: Any? = null
|
||||
@@ -183,12 +201,7 @@ class PadDataLayoutNew : FrameLayout {
|
||||
et.doOnTextChanged { text, _, _, _ ->
|
||||
value = text.toString()
|
||||
}
|
||||
bindOnSelected(spinner, object : IOnSpinnerSelected {
|
||||
override fun onSelected(position: Int) {
|
||||
value = list.getOrNull(position)?.value ?: ""
|
||||
refreshCallBack?.invoke()
|
||||
}
|
||||
})
|
||||
bindOnSelected(spinner, spinnerCallback)
|
||||
// 监听输入框焦点变化
|
||||
com.lukouguoji.module_base.adapter.setOnFocusChangeListener(
|
||||
et, object : IOnFocusChangeListener {
|
||||
|
||||
Reference in New Issue
Block a user