feat: opt 进港查询 filter form

This commit is contained in:
2026-03-23 15:53:24 +08:00
parent b2daabe2ab
commit 9ed6a4e494
3 changed files with 48 additions and 0 deletions

View File

@@ -56,4 +56,43 @@ class UpperCaseAlphanumericInputFilter : InputFilter {
*/ */
fun EditText.setUpperCaseAlphanumericFilter() { fun EditText.setUpperCaseAlphanumericFilter() {
this.filters = arrayOf(UpperCaseAlphanumericInputFilter()) this.filters = arrayOf(UpperCaseAlphanumericInputFilter())
}
/**
* 大写字母输入过滤器
* 只允许输入大写字母(A-Z),小写字母自动转为大写
*/
class UpperCaseLetterInputFilter : InputFilter {
override fun filter(
source: CharSequence?,
start: Int,
end: Int,
dest: Spanned?,
dstart: Int,
dend: Int
): CharSequence? {
if (source.isNullOrEmpty()) return null
val filtered = StringBuilder()
for (i in start until end) {
val char = source[i]
if (char in 'A'..'Z' || char in 'a'..'z') {
filtered.append(char.uppercaseChar())
}
}
return if (filtered.toString() == source.subSequence(start, end).toString()) {
null
} else {
filtered.toString()
}
}
}
/**
* 为 EditText 设置大写字母输入过滤器
* 使用方式: editText.setUpperCaseLetterFilter()
*/
fun EditText.setUpperCaseLetterFilter() {
this.filters = arrayOf(UpperCaseLetterInputFilter())
} }

View File

@@ -16,6 +16,8 @@ import com.lukouguoji.module_base.impl.FlowBus
import com.lukouguoji.module_base.impl.observe import com.lukouguoji.module_base.impl.observe
import com.lukouguoji.module_base.ktx.addOnItemClickListener import com.lukouguoji.module_base.ktx.addOnItemClickListener
import com.lukouguoji.module_base.ktx.getLifecycleOwner import com.lukouguoji.module_base.ktx.getLifecycleOwner
import com.lukouguoji.module_base.ktx.setUpperCaseAlphanumericFilter
import com.lukouguoji.module_base.ktx.setUpperCaseLetterFilter
import com.lukouguoji.module_base.router.ARouterConstants import com.lukouguoji.module_base.router.ARouterConstants
/** /**
@@ -53,6 +55,11 @@ class IntImpQueryActivity :
if (visible) showFilterPanel() else hideFilterPanel() if (visible) showFilterPanel() else hideFilterPanel()
} }
// 航班号:大写字母+数字
binding.filterPanel.filterFlightNo.et.setUpperCaseAlphanumericFilter()
// 始发港:仅大写字母
binding.filterPanel.filterOrigin.et.setUpperCaseLetterFilter()
viewModel.refresh() viewModel.refresh()
} }

View File

@@ -70,6 +70,7 @@
<!-- 航班号 --> <!-- 航班号 -->
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
android:id="@+id/filter_flight_no"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
@@ -81,6 +82,7 @@
<!-- 始发港 --> <!-- 始发港 -->
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew <com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
android:id="@+id/filter_origin"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"