Compare commits
20 Commits
da50aa9794
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 0ae77ffbf8 | |||
| 78238907b0 | |||
| 5e1ccc9e8a | |||
| 89d4812d9f | |||
| 8af644288d | |||
| 9363717224 | |||
| df5fa2ea74 | |||
| 3c413833cf | |||
| 072df758db | |||
| 6c4e97945b | |||
| a663609eeb | |||
| 74e9f5a827 | |||
| d6f72186a3 | |||
| b2ea79512c | |||
| 8b666364ae | |||
| aac2c860c6 | |||
| c2b5e74156 | |||
| 093314d601 | |||
| 9b089d51b1 | |||
| 8ced5be7a9 |
@@ -83,7 +83,27 @@
|
|||||||
"mcp__apifox__read_project_oas_2s2uhx",
|
"mcp__apifox__read_project_oas_2s2uhx",
|
||||||
"mcp__apifox__read_project_oas_ref_resources_2s2uhx",
|
"mcp__apifox__read_project_oas_ref_resources_2s2uhx",
|
||||||
"mcp__apifox__refresh_project_oas_2s2uhx",
|
"mcp__apifox__refresh_project_oas_2s2uhx",
|
||||||
"Bash(find /Users/kid/Development/Fusion/Projects/aerologic-app -path \"*/build\" -prune -o -type f \\\\\\( -name \"*manifest*\" -o -name \"*bean*\" \\\\\\) | grep -i \"gjj\\\\|tally\" | grep -E \"\\\\.\\(kt\\)$\" | sort)"
|
"Bash(find /Users/kid/Development/Fusion/Projects/aerologic-app -path \"*/build\" -prune -o -type f \\\\\\( -name \"*manifest*\" -o -name \"*bean*\" \\\\\\) | grep -i \"gjj\\\\|tally\" | grep -E \"\\\\.\\(kt\\)$\" | sort)",
|
||||||
|
"mcp__apifox__read_project_oas_9otrai",
|
||||||
|
"mcp__apifox__read_project_oas_ref_resources_9otrai",
|
||||||
|
"Bash(cd:*)",
|
||||||
|
"mcp__apifox__read_project_oas_tua249",
|
||||||
|
"mcp__apifox__read_project_oas_ref_resources_tua249",
|
||||||
|
"mcp__apifox__read_project_oas_heib77",
|
||||||
|
"mcp__apifox__read_project_oas_ref_resources_heib77",
|
||||||
|
"Bash(export JAVA_HOME=\"/Applications/Android Studio.app/Contents/jbr/Contents/Home\")",
|
||||||
|
"Bash(export PATH=\"$JAVA_HOME/bin:$PATH\")",
|
||||||
|
"Read(//Library/Java/JavaVirtualMachines/**)",
|
||||||
|
"Read(//usr/local/**)",
|
||||||
|
"Read(//opt/homebrew/opt/**)",
|
||||||
|
"Bash(/Users/kid/.vfox/sdks/java/bin/java -version 2>&1)",
|
||||||
|
"Bash(export JAVA_HOME=/Users/kid/.vfox/sdks/java)",
|
||||||
|
"mcp__apifox__read_project_oas_kcl8s7",
|
||||||
|
"mcp__apifox__refresh_project_oas_kcl8s7",
|
||||||
|
"mcp__apifox__read_project_oas_ref_resources_kcl8s7",
|
||||||
|
"mcp__apifox__read_project_oas_x3v6fh",
|
||||||
|
"mcp__apifox__read_project_oas_ref_resources_x3v6fh",
|
||||||
|
"mcp__plugin_claude-mem_mcp-search__smart_outline"
|
||||||
],
|
],
|
||||||
"deny": [],
|
"deny": [],
|
||||||
"ask": []
|
"ask": []
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
[tools]
|
[tools]
|
||||||
java = "17.0.17+10-amzn"
|
java = "17+35-amzn"
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
/Users/kid/.version-fox/cache/java/v-17.0.17+10-amzn/java-17.0.17+10-amzn
|
/Users/kid/.version-fox/cache/java/v-17+35-amzn/java-17+35-amzn
|
||||||
23
CLAUDE.md
23
CLAUDE.md
@@ -124,11 +124,12 @@ class XxxViewModel : BasePageViewModel() {
|
|||||||
<LinearLayout orientation="vertical">
|
<LinearLayout orientation="vertical">
|
||||||
<include layout="@layout/title_tool_bar" />
|
<include layout="@layout/title_tool_bar" />
|
||||||
|
|
||||||
<!-- 搜索区:PadSearchLayout 横排 -->
|
<!-- 搜索区:PadSearchLayout 横排 + 操作按钮(如有) -->
|
||||||
<LinearLayout orientation="horizontal">
|
<LinearLayout orientation="horizontal">
|
||||||
<PadSearchLayout type="@{SearchLayoutType.DATE}" value="@={viewModel.flightDate}" />
|
<PadSearchLayout type="@{SearchLayoutType.DATE}" value="@={viewModel.flightDate}" />
|
||||||
<PadSearchLayout type="@{SearchLayoutType.INPUT}" value="@={viewModel.flightNo}" />
|
<PadSearchLayout type="@{SearchLayoutType.INPUT}" value="@={viewModel.flightNo}" />
|
||||||
<ImageView style="@style/iv_search_action" android:onClick="@{()-> viewModel.searchClick()}" />
|
<ImageView style="@style/iv_search_action" android:onClick="@{()-> viewModel.searchClick()}" />
|
||||||
|
<!-- 如需新增/删除按钮,尺寸规范见「开发原则」工具栏图标尺寸规范 -->
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<!-- 分页列表 -->
|
<!-- 分页列表 -->
|
||||||
@@ -382,6 +383,25 @@ fun toggleAllExpand() {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
4. **子列表项 checkbox 样式**(必须使用 `_style` 系列,禁止使用 `_gray` 系列):
|
||||||
|
```xml
|
||||||
|
<!-- 子列表项 item_xxx_sub.xml 中的 iv_checkbox -->
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/iv_checkbox"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="20dp"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_weight="0.5"
|
||||||
|
loadImage="@{bean.checked.get() ? @drawable/radiobtn_checked_style : @drawable/radiobtn_unchecked_style}"
|
||||||
|
android:src="@drawable/radiobtn_unchecked_style" />
|
||||||
|
```
|
||||||
|
|
||||||
|
| 资源 | 含义 | 外观 |
|
||||||
|
|------|------|------|
|
||||||
|
| `radiobtn_checked_style` | 选中 | colorPrimary 蓝色实心圆 + 白色内环 |
|
||||||
|
| `radiobtn_unchecked_style` | 未选中 | 透明 + 黑色边框圆 |
|
||||||
|
| ~~`radiobtn_checked_gray`~~ | ❌ 禁用 | 灰色实心圆(错误样式) |
|
||||||
|
|
||||||
**参考文件**: `module_gjc/.../IntExpStorageUseActivity.kt`、`IntExpStorageUseViewModel.kt`
|
**参考文件**: `module_gjc/.../IntExpStorageUseActivity.kt`、`IntExpStorageUseViewModel.kt`
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -842,6 +862,7 @@ companion object {
|
|||||||
- 标题栏统一用 `title_tool_bar` — 禁止手动编写 Toolbar
|
- 标题栏统一用 `title_tool_bar` — 禁止手动编写 Toolbar
|
||||||
- 优先使用 PadDataLayoutNew 和 PadSearchLayout 组件
|
- 优先使用 PadDataLayoutNew 和 PadSearchLayout 组件
|
||||||
- 在每个页面布局时,如有截图,务必尽可能还原图片上的页面设计,而不是推测假想。如有困难一律要询问,禁止自己想象
|
- 在每个页面布局时,如有截图,务必尽可能还原图片上的页面设计,而不是推测假想。如有困难一律要询问,禁止自己想象
|
||||||
|
- 工具栏图标尺寸规范: `img_search` 36dp + padding 2dp;`img_add` 40dp 无 padding(使用 `drawable/img_add.xml` 矢量图,`drawable-xhdpi/img_add.png` 已废弃删除)
|
||||||
- 常用资源: `bg_white_radius_8`、`colorPrimary`、`text_normal`、`text_gray`、`color_bottom_layout`
|
- 常用资源: `bg_white_radius_8`、`colorPrimary`、`text_normal`、`text_gray`、`color_bottom_layout`
|
||||||
|
|
||||||
### 环境配置
|
### 环境配置
|
||||||
|
|||||||
@@ -529,6 +529,12 @@
|
|||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:screenOrientation="userLandscape" />
|
android:screenOrientation="userLandscape" />
|
||||||
|
|
||||||
|
<activity
|
||||||
|
android:name="com.lukouguoji.gjj.activity.IntImpAccidentVisaEditActivity"
|
||||||
|
android:configChanges="orientation|keyboardHidden"
|
||||||
|
android:exported="false"
|
||||||
|
android:screenOrientation="userLandscape" />
|
||||||
|
|
||||||
<service android:name="com.huitao.printer.service.PrinterService" />
|
<service android:name="com.huitao.printer.service.PrinterService" />
|
||||||
<service android:name="com.lukouguoji.gnc.bluetooth.service.AncillaryService" />
|
<service android:name="com.lukouguoji.gnc.bluetooth.service.AncillaryService" />
|
||||||
<service android:name="com.lukouguoji.gnc.bluetooth.service.MyService" />
|
<service android:name="com.lukouguoji.gnc.bluetooth.service.MyService" />
|
||||||
|
|||||||
@@ -11,8 +11,5 @@ class LogQueryViewHolder(view: View) : BaseViewHolder<LogBean, ItemLogQueryBindi
|
|||||||
override fun onBind(item: Any?, position: Int) {
|
override fun onBind(item: Any?, position: Int) {
|
||||||
val bean = getItemBean(item)
|
val bean = getItemBean(item)
|
||||||
binding.bean = bean
|
binding.bean = bean
|
||||||
itemView.setOnClickListener {
|
|
||||||
bean?.let { LogDetailActivity.start(itemView.context, it) }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -825,16 +825,16 @@ class HomeFragment : Fragment() {
|
|||||||
)
|
)
|
||||||
list.add(
|
list.add(
|
||||||
RightMenu(
|
RightMenu(
|
||||||
Constant.AuthName.IntArrAirManifest,
|
Constant.AuthName.IntImpManifest,
|
||||||
R.mipmap.img_bwjx,
|
R.mipmap.img_bwjx,
|
||||||
"原始舱单"
|
"进港舱单"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
list.add(
|
list.add(
|
||||||
RightMenu(
|
RightMenu(
|
||||||
Constant.AuthName.IntImpManifest,
|
Constant.AuthName.IntArrAirManifest,
|
||||||
R.mipmap.img_bwjx,
|
R.mipmap.img_bwjx,
|
||||||
"进港舱单"
|
"原始舱单"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
list.add(
|
list.add(
|
||||||
@@ -970,13 +970,6 @@ class HomeFragment : Fragment() {
|
|||||||
"ULD管理"
|
"ULD管理"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
list.add(
|
|
||||||
RightMenu(
|
|
||||||
Constant.AuthName.ComprehensiveColdStorage,
|
|
||||||
com.lukouguoji.module_base.R.mipmap.gnc_cangku,
|
|
||||||
"冷库登记"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else -> {
|
else -> {
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
value="@={viewModel.status}"
|
value="@={viewModel.status}"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="0.33" />
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
|
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
|
||||||
hint='@{"选择所属航司"}'
|
hint='@{"选择所属航司"}'
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
value="@={viewModel.uldSuffix}"
|
value="@={viewModel.uldSuffix}"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="0.33" />
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
|
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
|
||||||
hint='@{"请输入ULD编号"}'
|
hint='@{"请输入ULD编号"}'
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
value="@={viewModel.uldNo}"
|
value="@={viewModel.uldNo}"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="0.33" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
@@ -69,11 +69,10 @@
|
|||||||
android:src="@drawable/img_search" />
|
android:src="@drawable/img_search" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="36dp"
|
android:layout_width="40dp"
|
||||||
android:layout_height="36dp"
|
android:layout_height="40dp"
|
||||||
android:layout_marginLeft="16dp"
|
android:layout_marginLeft="16dp"
|
||||||
android:onClick="@{()-> viewModel.onAddClick()}"
|
android:onClick="@{()-> viewModel.onAddClick()}"
|
||||||
android:padding="4dp"
|
|
||||||
android:src="@drawable/img_add" />
|
android:src="@drawable/img_add" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|||||||
@@ -6,7 +6,17 @@
|
|||||||
# http://www.gradle.org/docs/current/userguide/build_environment.html
|
# http://www.gradle.org/docs/current/userguide/build_environment.html
|
||||||
# Specifies the JVM arguments used for the daemon process.
|
# Specifies the JVM arguments used for the daemon process.
|
||||||
# The setting is particularly useful for tweaking memory settings.
|
# The setting is particularly useful for tweaking memory settings.
|
||||||
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
|
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 \
|
||||||
|
--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED \
|
||||||
|
--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED \
|
||||||
|
--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED \
|
||||||
|
--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED \
|
||||||
|
--add-opens=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED \
|
||||||
|
--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED \
|
||||||
|
--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED \
|
||||||
|
--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \
|
||||||
|
--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \
|
||||||
|
--add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
|
||||||
kapt.use.worker.api=false
|
kapt.use.worker.api=false
|
||||||
kapt.include.compile.classpath=false
|
kapt.include.compile.classpath=false
|
||||||
# When configured, Gradle will run in incubating parallel mode.
|
# When configured, Gradle will run in incubating parallel mode.
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package com.lukouguoji.module_base.bean
|
||||||
|
|
||||||
|
class GjAccidentVisaEditBean {
|
||||||
|
var id: Long = 0
|
||||||
|
var fdate: String = "" // 航班日期
|
||||||
|
var fno: String = "" // 航班号
|
||||||
|
var dep: String = "" // 始发站
|
||||||
|
var dest: String = "" // 目的站
|
||||||
|
var wbNo: String = "" // 运单号
|
||||||
|
var dpc: String = "" // 不正常件数
|
||||||
|
var pc: String = "" // 运单总件数
|
||||||
|
var weight: String = "" // 运单总重量
|
||||||
|
var reweight: String = "" // 复称重量
|
||||||
|
var goods: String = "" // 品名
|
||||||
|
var opacking: String = "" // 外包装
|
||||||
|
var damage: String = "" // 包装破损情况
|
||||||
|
var condition: String = "" // 内容物情况
|
||||||
|
var problem: String = "" // 不正常类型
|
||||||
|
var seachDate: String = "" // 发现时间
|
||||||
|
var photo: String = "" // 图片是否留底
|
||||||
|
var remarks: String = "" // 备注
|
||||||
|
var pic: String = "" // 缩略图
|
||||||
|
var originalPic: String = "" // 原图
|
||||||
|
var picNumber: String = "" // 图片数量
|
||||||
|
var idFlag: String = "1" // 国际标志(固定为1=国际)
|
||||||
|
}
|
||||||
@@ -85,6 +85,7 @@ data class GjcMaWb(
|
|||||||
|
|
||||||
// ==================== 操作信息 ====================
|
// ==================== 操作信息 ====================
|
||||||
var opDate: String? = null, // 操作时间(入库时间)
|
var opDate: String? = null, // 操作时间(入库时间)
|
||||||
|
var inDate: String? = null, // 入库时间
|
||||||
var opId: String? = null, // 操作员id
|
var opId: String? = null, // 操作员id
|
||||||
var paperTime: Date? = null, // 单证时间
|
var paperTime: Date? = null, // 单证时间
|
||||||
|
|
||||||
|
|||||||
@@ -47,10 +47,14 @@ data class GjjImportManifest(
|
|||||||
var dgrContactMame: String = "",
|
var dgrContactMame: String = "",
|
||||||
// 危险品收货人通讯方式
|
// 危险品收货人通讯方式
|
||||||
var dgrContactNumber: String = "",
|
var dgrContactNumber: String = "",
|
||||||
|
// 航班日期
|
||||||
|
var fdate: String = "",
|
||||||
// 航班起始站
|
// 航班起始站
|
||||||
var fdep: String = "",
|
var fdep: String = "",
|
||||||
// 航班目的站
|
// 航班目的站
|
||||||
var fdest: String = "",
|
var fdest: String = "",
|
||||||
|
// 航班号
|
||||||
|
var fno: String = "",
|
||||||
// 航班id
|
// 航班id
|
||||||
var fid: Long = 0,
|
var fid: Long = 0,
|
||||||
// 运费支付方式
|
// 运费支付方式
|
||||||
@@ -114,6 +118,15 @@ data class GjjImportManifest(
|
|||||||
// 重量
|
// 重量
|
||||||
var weight: Double = 0.0
|
var weight: Double = 0.0
|
||||||
) : Serializable {
|
) : Serializable {
|
||||||
|
// 获取航班信息(日期去横杠/航班号)
|
||||||
|
fun getFlightSplit(): String {
|
||||||
|
if (fdate != "" && fno != "") {
|
||||||
|
val (year, mon, day) = fdate.split("-")
|
||||||
|
return "${year}${mon}${day}/${fno}"
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
// ========== UI扩展字段 ==========
|
// ========== UI扩展字段 ==========
|
||||||
// 选中状态
|
// 选中状态
|
||||||
@Transient
|
@Transient
|
||||||
|
|||||||
@@ -79,12 +79,20 @@ data class GjjImportTally(
|
|||||||
var goodsCn: String = "",
|
var goodsCn: String = "",
|
||||||
// 品名(英文)
|
// 品名(英文)
|
||||||
var goodsEn: String = "",
|
var goodsEn: String = "",
|
||||||
// 放行模式
|
// 放行模式(代码)
|
||||||
|
var relMode: String = "",
|
||||||
|
// 放行模式(名称)
|
||||||
var releaseMode: String = "",
|
var releaseMode: String = "",
|
||||||
|
// 放行时间(perDate)
|
||||||
|
var perDate: String = "",
|
||||||
// 放行时间
|
// 放行时间
|
||||||
var releaseTime: String = "",
|
var releaseTime: String = "",
|
||||||
|
// 指令类型(comType)
|
||||||
|
var comType: String = "",
|
||||||
// 指令类型
|
// 指令类型
|
||||||
var instructionType: String = "",
|
var instructionType: String = "",
|
||||||
|
// 放行备注
|
||||||
|
var relRemark: String = "",
|
||||||
// 备注
|
// 备注
|
||||||
var remark: String = ""
|
var remark: String = ""
|
||||||
) : Serializable {
|
) : Serializable {
|
||||||
@@ -107,5 +115,14 @@ data class GjjImportTally(
|
|||||||
|
|
||||||
// 获取完整运单号
|
// 获取完整运单号
|
||||||
fun getWaybillNo() = "$prefix$no"
|
fun getWaybillNo() = "$prefix$no"
|
||||||
|
|
||||||
|
// 获取航班信息(日期去横杠/航班号)
|
||||||
|
fun getFlightSplit(): String {
|
||||||
|
if (fdate != "" && fno != "") {
|
||||||
|
val (year, mon, day) = fdate.split("-")
|
||||||
|
return "${year}${mon}${day}/${fno}"
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ class IntImpPickUpDLVBean : Serializable {
|
|||||||
var efrCharge: Double = 0.0 // 冷藏费
|
var efrCharge: Double = 0.0 // 冷藏费
|
||||||
var svlCharge: Double = 0.0 // 铲车费
|
var svlCharge: Double = 0.0 // 铲车费
|
||||||
var tallyCharge: Double = 0.0 // 理货费
|
var tallyCharge: Double = 0.0 // 理货费
|
||||||
|
var pipFee: Double = 0.0 // 精密仪器处理费
|
||||||
|
var lapFee: Double = 0.0 // 活体动物处理费
|
||||||
var chargeId: String = "" // 收费员
|
var chargeId: String = "" // 收费员
|
||||||
var chargeName: String = "" // 收费员名称
|
var chargeName: String = "" // 收费员名称
|
||||||
var dlvId: String = ""
|
var dlvId: String = ""
|
||||||
|
|||||||
@@ -29,6 +29,8 @@ class IntImpPickUpRecordBean : Serializable {
|
|||||||
var efrCharge: Double = 0.0 // 冷藏费
|
var efrCharge: Double = 0.0 // 冷藏费
|
||||||
var svlCharge: Double = 0.0 // 铲车费
|
var svlCharge: Double = 0.0 // 铲车费
|
||||||
var tallyCharge: Double = 0.0 // 理货费
|
var tallyCharge: Double = 0.0 // 理货费
|
||||||
|
var pipFee: Double = 0.0 // 精密仪器处理费
|
||||||
|
var lapFee: Double = 0.0 // 活体动物处理费
|
||||||
var chargeName: String = "" // 办理人名称
|
var chargeName: String = "" // 办理人名称
|
||||||
var chargeId: String = "" // 收费员ID
|
var chargeId: String = "" // 收费员ID
|
||||||
var dlvTime: String = "" // 出库时间
|
var dlvTime: String = "" // 出库时间
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ import com.lukouguoji.module_base.bean.GjjGoodsDetailsBean
|
|||||||
import com.lukouguoji.module_base.bean.GjjGoodsTypeBean
|
import com.lukouguoji.module_base.bean.GjjGoodsTypeBean
|
||||||
import com.lukouguoji.module_base.bean.GjjHandoverRecordBean
|
import com.lukouguoji.module_base.bean.GjjHandoverRecordBean
|
||||||
import com.lukouguoji.module_base.bean.GjjImportTally
|
import com.lukouguoji.module_base.bean.GjjImportTally
|
||||||
|
import com.lukouguoji.module_base.bean.GjAccidentVisaEditBean
|
||||||
import com.lukouguoji.module_base.bean.IntImpAccidentVisaBean
|
import com.lukouguoji.module_base.bean.IntImpAccidentVisaBean
|
||||||
import com.lukouguoji.module_base.bean.IntImpPickUpDLVBean
|
import com.lukouguoji.module_base.bean.IntImpPickUpDLVBean
|
||||||
import com.lukouguoji.module_base.bean.IntImpPickUpRecordBean
|
import com.lukouguoji.module_base.bean.IntImpPickUpRecordBean
|
||||||
@@ -301,6 +302,12 @@ interface Api {
|
|||||||
@POST("typeCode/countryType")
|
@POST("typeCode/countryType")
|
||||||
suspend fun getAreaTypeList(): DictListBean
|
suspend fun getAreaTypeList(): DictListBean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取国家代码
|
||||||
|
*/
|
||||||
|
@POST("typeCode/countryCode")
|
||||||
|
suspend fun getCountryCodeList(): DictListBean
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取通讯方式类型
|
* 获取通讯方式类型
|
||||||
*/
|
*/
|
||||||
@@ -1962,6 +1969,42 @@ interface Api {
|
|||||||
@POST("GjAccidentVisa/delete")
|
@POST("GjAccidentVisa/delete")
|
||||||
suspend fun deleteIntImpAccidentVisa(@Body data: RequestBody): BaseResultBean<String>
|
suspend fun deleteIntImpAccidentVisa(@Body data: RequestBody): BaseResultBean<String>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 国际事故签证-新增
|
||||||
|
*/
|
||||||
|
@POST("GjAccidentVisa/saveVisa")
|
||||||
|
suspend fun saveGjAccidentVisa(@Body data: RequestBody): BaseResultBean<String>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 国际事故签证-修改
|
||||||
|
*/
|
||||||
|
@POST("GjAccidentVisa/modifyVisa")
|
||||||
|
suspend fun modifyGjAccidentVisa(@Body data: RequestBody): BaseResultBean<String>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 国际事故签证-详情
|
||||||
|
*/
|
||||||
|
@POST("GjAccidentVisa/detail")
|
||||||
|
suspend fun getGjAccidentVisaDetail(@Query("id") id: Long): BaseResultBean<GjAccidentVisaEditBean>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字典-破损情况
|
||||||
|
*/
|
||||||
|
@POST("typeCode/damageType")
|
||||||
|
suspend fun getDamageTypeList(): DictListBean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字典-内容物情况
|
||||||
|
*/
|
||||||
|
@POST("typeCode/contentType")
|
||||||
|
suspend fun getContentTypeList(): DictListBean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字典-不正常类型
|
||||||
|
*/
|
||||||
|
@POST("typeCode/unusualType")
|
||||||
|
suspend fun getUnusualTypeList(): DictListBean
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// ULD管理
|
// ULD管理
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@@ -102,6 +102,24 @@ object DictUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取国际进港代理列表
|
||||||
|
*/
|
||||||
|
fun getIntImpAgentList(
|
||||||
|
addAll: Boolean = true,
|
||||||
|
checkedValue: String? = null,
|
||||||
|
callBack: (List<KeyValue>) -> Unit
|
||||||
|
) {
|
||||||
|
launchCollect({
|
||||||
|
NetApply.api
|
||||||
|
.getIntImpAgentList()
|
||||||
|
}) {
|
||||||
|
onSuccess = {
|
||||||
|
handleCallBack(it, checkedValue, addAll, callBack)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取仓管列表
|
* 获取仓管列表
|
||||||
*/
|
*/
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 775 B |
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:width="24dp"
|
android:width="200dp"
|
||||||
android:height="24dp"
|
android:height="200dp"
|
||||||
android:viewportWidth="24"
|
android:viewportWidth="24"
|
||||||
android:viewportHeight="24">
|
android:viewportHeight="24">
|
||||||
<path
|
<path
|
||||||
|
|||||||
@@ -100,11 +100,10 @@
|
|||||||
|
|
||||||
<!-- 添加按钮 -->
|
<!-- 添加按钮 -->
|
||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="36dp"
|
android:layout_width="40dp"
|
||||||
android:layout_height="36dp"
|
android:layout_height="40dp"
|
||||||
android:layout_marginLeft="16dp"
|
android:layout_marginLeft="16dp"
|
||||||
android:onClick="@{()-> viewModel.addClick()}"
|
android:onClick="@{()-> viewModel.addClick()}"
|
||||||
android:padding="4dp"
|
|
||||||
android:src="@drawable/img_add" />
|
android:src="@drawable/img_add" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|||||||
@@ -104,11 +104,10 @@
|
|||||||
|
|
||||||
<!-- 添加按钮 -->
|
<!-- 添加按钮 -->
|
||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="36dp"
|
android:layout_width="40dp"
|
||||||
android:layout_height="36dp"
|
android:layout_height="40dp"
|
||||||
android:layout_marginLeft="16dp"
|
android:layout_marginLeft="16dp"
|
||||||
android:onClick="@{()-> viewModel.addClick()}"
|
android:onClick="@{()-> viewModel.addClick()}"
|
||||||
android:padding="4dp"
|
|
||||||
android:src="@drawable/img_add" />
|
android:src="@drawable/img_add" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|||||||
@@ -97,11 +97,10 @@
|
|||||||
|
|
||||||
<!-- 新<><E696B0><EFBFBD>按钮 -->
|
<!-- 新<><E696B0><EFBFBD>按钮 -->
|
||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="36dp"
|
android:layout_width="40dp"
|
||||||
android:layout_height="36dp"
|
android:layout_height="40dp"
|
||||||
android:layout_marginLeft="16dp"
|
android:layout_marginLeft="16dp"
|
||||||
android:onClick="@{()-> viewModel.onAddClick()}"
|
android:onClick="@{()-> viewModel.onAddClick()}"
|
||||||
android:padding="4dp"
|
|
||||||
android:src="@drawable/img_add" />
|
android:src="@drawable/img_add" />
|
||||||
|
|
||||||
<!-- 删除按钮 -->
|
<!-- 删除按钮 -->
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ package com.lukouguoji.gjj.activity
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.text.InputType
|
||||||
import com.lukouguoji.gjj.R
|
import com.lukouguoji.gjj.R
|
||||||
import com.lukouguoji.gjj.databinding.ActivityGjjManifestAddBinding
|
import com.lukouguoji.gjj.databinding.ActivityGjjManifestAddBinding
|
||||||
import com.lukouguoji.gjj.viewModel.GjjManifestAddViewModel
|
import com.lukouguoji.gjj.viewModel.GjjManifestAddViewModel
|
||||||
@@ -23,6 +23,14 @@ class GjjManifestAddActivity :
|
|||||||
override fun initOnCreate(savedInstanceState: Bundle?) {
|
override fun initOnCreate(savedInstanceState: Bundle?) {
|
||||||
binding.viewModel = viewModel
|
binding.viewModel = viewModel
|
||||||
binding.flightNoInput.et.setUpperCaseAlphanumericFilter()
|
binding.flightNoInput.et.setUpperCaseAlphanumericFilter()
|
||||||
|
|
||||||
|
// 件数只允许输入整数
|
||||||
|
binding.waybillNumInput.inputType = InputType.TYPE_CLASS_NUMBER
|
||||||
|
binding.actualNumInput.inputType = InputType.TYPE_CLASS_NUMBER
|
||||||
|
// 重量允许输入小数
|
||||||
|
binding.actualWeightInput.inputType = InputType.TYPE_CLASS_NUMBER or InputType.TYPE_NUMBER_FLAG_DECIMAL
|
||||||
|
binding.billingWeightInput.inputType = InputType.TYPE_CLASS_NUMBER or InputType.TYPE_NUMBER_FLAG_DECIMAL
|
||||||
|
|
||||||
viewModel.initOnCreated(intent)
|
viewModel.initOnCreated(intent)
|
||||||
|
|
||||||
// 动态设置标题(必须在 initOnCreated 之后,pageType 已从 Intent 解析)
|
// 动态设置标题(必须在 initOnCreated 之后,pageType 已从 Intent 解析)
|
||||||
@@ -38,12 +46,21 @@ class GjjManifestAddActivity :
|
|||||||
* 新增舱单
|
* 新增舱单
|
||||||
*/
|
*/
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun start(context: Context, fid: String = "", dep: String, dest: String) {
|
fun start(
|
||||||
|
context: Context,
|
||||||
|
fid: String = "",
|
||||||
|
dep: String,
|
||||||
|
dest: String,
|
||||||
|
flightDate: String = "",
|
||||||
|
flightNo: String = ""
|
||||||
|
) {
|
||||||
val starter = Intent(context, GjjManifestAddActivity::class.java)
|
val starter = Intent(context, GjjManifestAddActivity::class.java)
|
||||||
.putExtra(Constant.Key.PAGE_TYPE, DetailsPageType.Add.name)
|
.putExtra(Constant.Key.PAGE_TYPE, DetailsPageType.Add.name)
|
||||||
.putExtra(Constant.Key.ID, fid)
|
.putExtra(Constant.Key.ID, fid)
|
||||||
.putExtra(Constant.Key.DEPARTURE, dep)
|
.putExtra(Constant.Key.DEPARTURE, dep)
|
||||||
.putExtra(Constant.Key.DESTINATION, dest)
|
.putExtra(Constant.Key.DESTINATION, dest)
|
||||||
|
.putExtra("flightDate", flightDate)
|
||||||
|
.putExtra("flightNo", flightNo)
|
||||||
context.startActivity(starter)
|
context.startActivity(starter)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,10 +8,14 @@ import com.lukouguoji.gjj.R
|
|||||||
import com.lukouguoji.gjj.databinding.ActivityIntImpAccidentVisaBinding
|
import com.lukouguoji.gjj.databinding.ActivityIntImpAccidentVisaBinding
|
||||||
import com.lukouguoji.gjj.viewModel.IntImpAccidentVisaViewModel
|
import com.lukouguoji.gjj.viewModel.IntImpAccidentVisaViewModel
|
||||||
import com.lukouguoji.module_base.base.BaseBindingActivity
|
import com.lukouguoji.module_base.base.BaseBindingActivity
|
||||||
|
import com.lukouguoji.module_base.bean.IntImpAccidentVisaBean
|
||||||
import com.lukouguoji.module_base.common.Constant
|
import com.lukouguoji.module_base.common.Constant
|
||||||
import com.lukouguoji.module_base.common.ConstantEvent
|
import com.lukouguoji.module_base.common.ConstantEvent
|
||||||
import com.lukouguoji.module_base.impl.FlowBus
|
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.interfaces.IOnItemClickListener
|
||||||
|
import com.lukouguoji.module_base.ktx.addOnItemClickListener
|
||||||
|
import com.lukouguoji.module_base.ktx.commonAdapter
|
||||||
import com.lukouguoji.module_base.router.ARouterConstants
|
import com.lukouguoji.module_base.router.ARouterConstants
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -19,7 +23,8 @@ import com.lukouguoji.module_base.router.ARouterConstants
|
|||||||
*/
|
*/
|
||||||
@Route(path = ARouterConstants.ACTIVITY_URL_INT_IMP_ACCIDENT_VISA)
|
@Route(path = ARouterConstants.ACTIVITY_URL_INT_IMP_ACCIDENT_VISA)
|
||||||
class IntImpAccidentVisaActivity :
|
class IntImpAccidentVisaActivity :
|
||||||
BaseBindingActivity<ActivityIntImpAccidentVisaBinding, IntImpAccidentVisaViewModel>() {
|
BaseBindingActivity<ActivityIntImpAccidentVisaBinding, IntImpAccidentVisaViewModel>(),
|
||||||
|
IOnItemClickListener {
|
||||||
|
|
||||||
override fun layoutId() = R.layout.activity_int_imp_accident_visa
|
override fun layoutId() = R.layout.activity_int_imp_accident_visa
|
||||||
override fun viewModelClass() = IntImpAccidentVisaViewModel::class.java
|
override fun viewModelClass() = IntImpAccidentVisaViewModel::class.java
|
||||||
@@ -34,6 +39,8 @@ class IntImpAccidentVisaActivity :
|
|||||||
|
|
||||||
viewModel.pageModel.bindSmartRefreshLayout(binding.srl, binding.rv, viewModel, this)
|
viewModel.pageModel.bindSmartRefreshLayout(binding.srl, binding.rv, viewModel, this)
|
||||||
|
|
||||||
|
binding.rv.addOnItemClickListener(this)
|
||||||
|
|
||||||
FlowBus.with<String>(ConstantEvent.EVENT_REFRESH).observe(this) {
|
FlowBus.with<String>(ConstantEvent.EVENT_REFRESH).observe(this) {
|
||||||
viewModel.refresh()
|
viewModel.refresh()
|
||||||
}
|
}
|
||||||
@@ -48,4 +55,15 @@ class IntImpAccidentVisaActivity :
|
|||||||
viewModel.searchClick()
|
viewModel.searchClick()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onItemClick(position: Int, type: Int) {
|
||||||
|
when (type) {
|
||||||
|
2000 -> {
|
||||||
|
// 侧滑菜单 - 修改
|
||||||
|
val bean = binding.rv.commonAdapter()?.getItem(position) as? IntImpAccidentVisaBean
|
||||||
|
?: return
|
||||||
|
IntImpAccidentVisaEditActivity.start(this, bean.id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
package com.lukouguoji.gjj.activity
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
|
import android.os.Bundle
|
||||||
|
import com.lukouguoji.gjj.R
|
||||||
|
import com.lukouguoji.gjj.databinding.ActivityIntImpAccidentVisaEditBinding
|
||||||
|
import com.lukouguoji.gjj.viewModel.IntImpAccidentVisaEditViewModel
|
||||||
|
import com.lukouguoji.module_base.base.BaseBindingActivity
|
||||||
|
import com.lukouguoji.module_base.common.Constant
|
||||||
|
import com.lukouguoji.module_base.common.DetailsPageType
|
||||||
|
import com.lukouguoji.module_base.ktx.addOnItemClickListener
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 国际进港-事故签证新增/编辑
|
||||||
|
*/
|
||||||
|
class IntImpAccidentVisaEditActivity :
|
||||||
|
BaseBindingActivity<ActivityIntImpAccidentVisaEditBinding, IntImpAccidentVisaEditViewModel>() {
|
||||||
|
|
||||||
|
override fun layoutId() = R.layout.activity_int_imp_accident_visa_edit
|
||||||
|
override fun viewModelClass() = IntImpAccidentVisaEditViewModel::class.java
|
||||||
|
|
||||||
|
override fun initOnCreate(savedInstanceState: Bundle?) {
|
||||||
|
binding.viewModel = viewModel
|
||||||
|
|
||||||
|
viewModel.rv = binding.rv
|
||||||
|
binding.rv.addOnItemClickListener(viewModel)
|
||||||
|
viewModel.initOnCreate(intent)
|
||||||
|
|
||||||
|
viewModel.pageType.observe(this) {
|
||||||
|
val title = if (it == DetailsPageType.Add) "国际事故签证新增" else "国际事故签证修改"
|
||||||
|
setBackArrow(title)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
@JvmStatic
|
||||||
|
fun start(context: Context, id: Long = 0) {
|
||||||
|
context.startActivity(
|
||||||
|
Intent(context, IntImpAccidentVisaEditActivity::class.java)
|
||||||
|
.putExtra(Constant.Key.ID, id)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -31,15 +31,28 @@ class IntImpManifestSubEditActivity :
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
const val KEY_MAIN_PC = "mainPc"
|
||||||
|
const val KEY_MAIN_WEIGHT = "mainWeight"
|
||||||
|
const val KEY_OTHER_SUB_PC = "otherSubPc"
|
||||||
|
const val KEY_OTHER_SUB_WEIGHT = "otherSubWeight"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增分单
|
* 新增分单
|
||||||
*/
|
*/
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun startForAdd(context: Context, manifest: GjjManifest) {
|
fun startForAdd(context: Context, manifest: GjjManifest) {
|
||||||
|
// 新增模式:其他分单之和 = 所有已有分单之和
|
||||||
|
val otherSubPc = manifest.haWbList?.sumOf { it.pc } ?: 0L
|
||||||
|
val otherSubWeight = manifest.haWbList?.sumOf { it.weight } ?: 0.0
|
||||||
|
|
||||||
context.startActivity(
|
context.startActivity(
|
||||||
Intent(context, IntImpManifestSubEditActivity::class.java)
|
Intent(context, IntImpManifestSubEditActivity::class.java)
|
||||||
.putExtra(Constant.Key.PAGE_TYPE, DetailsPageType.Add.name)
|
.putExtra(Constant.Key.PAGE_TYPE, DetailsPageType.Add.name)
|
||||||
.putExtra(Constant.Key.BEAN, manifest)
|
.putExtra(Constant.Key.BEAN, manifest)
|
||||||
|
.putExtra(KEY_MAIN_PC, manifest.pc)
|
||||||
|
.putExtra(KEY_MAIN_WEIGHT, manifest.weight)
|
||||||
|
.putExtra(KEY_OTHER_SUB_PC, otherSubPc)
|
||||||
|
.putExtra(KEY_OTHER_SUB_WEIGHT, otherSubWeight)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,11 +61,19 @@ class IntImpManifestSubEditActivity :
|
|||||||
*/
|
*/
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun startForModify(context: Context, manifest: GjjManifest, haWb: GjjHaWb) {
|
fun startForModify(context: Context, manifest: GjjManifest, haWb: GjjHaWb) {
|
||||||
|
// 修改模式:其他分单之和 = 所有分单之和 - 当前编辑的分单
|
||||||
|
val otherSubPc = (manifest.haWbList?.sumOf { it.pc } ?: 0L) - haWb.pc
|
||||||
|
val otherSubWeight = (manifest.haWbList?.sumOf { it.weight } ?: 0.0) - haWb.weight
|
||||||
|
|
||||||
context.startActivity(
|
context.startActivity(
|
||||||
Intent(context, IntImpManifestSubEditActivity::class.java)
|
Intent(context, IntImpManifestSubEditActivity::class.java)
|
||||||
.putExtra(Constant.Key.PAGE_TYPE, DetailsPageType.Modify.name)
|
.putExtra(Constant.Key.PAGE_TYPE, DetailsPageType.Modify.name)
|
||||||
.putExtra(Constant.Key.BEAN, manifest)
|
.putExtra(Constant.Key.BEAN, manifest)
|
||||||
.putExtra("haWb", haWb)
|
.putExtra("haWb", haWb)
|
||||||
|
.putExtra(KEY_MAIN_PC, manifest.pc)
|
||||||
|
.putExtra(KEY_MAIN_WEIGHT, manifest.weight)
|
||||||
|
.putExtra(KEY_OTHER_SUB_PC, otherSubPc)
|
||||||
|
.putExtra(KEY_OTHER_SUB_WEIGHT, otherSubWeight)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,9 @@ package com.lukouguoji.gjj.activity
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.view.Gravity
|
||||||
|
import android.view.View
|
||||||
|
import android.widget.FrameLayout
|
||||||
import com.alibaba.android.arouter.facade.annotation.Route
|
import com.alibaba.android.arouter.facade.annotation.Route
|
||||||
import com.lukouguoji.gjj.R
|
import com.lukouguoji.gjj.R
|
||||||
import com.lukouguoji.gjj.databinding.ActivityIntImpQueryBinding
|
import com.lukouguoji.gjj.databinding.ActivityIntImpQueryBinding
|
||||||
@@ -42,10 +45,67 @@ class IntImpQueryActivity :
|
|||||||
}
|
}
|
||||||
|
|
||||||
viewModel.initAgentList()
|
viewModel.initAgentList()
|
||||||
|
viewModel.initSpecialCodeList()
|
||||||
|
viewModel.initFilterLists()
|
||||||
|
|
||||||
|
// 观察筛选面板显示状态
|
||||||
|
viewModel.filterVisible.observe(this) { visible ->
|
||||||
|
if (visible) showFilterPanel() else hideFilterPanel()
|
||||||
|
}
|
||||||
|
|
||||||
viewModel.refresh()
|
viewModel.refresh()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun showFilterPanel() {
|
||||||
|
val panel = binding.filterPanel.root
|
||||||
|
val overlay = binding.filterOverlay
|
||||||
|
val panelWidth = window.decorView.width / 3
|
||||||
|
|
||||||
|
panel.layoutParams = (panel.layoutParams as FrameLayout.LayoutParams).apply {
|
||||||
|
width = panelWidth
|
||||||
|
gravity = Gravity.END
|
||||||
|
}
|
||||||
|
|
||||||
|
// 先 INVISIBLE 完成测量,避免第一次显示时闪烁
|
||||||
|
panel.visibility = View.INVISIBLE
|
||||||
|
panel.translationX = panelWidth.toFloat()
|
||||||
|
overlay.visibility = View.VISIBLE
|
||||||
|
overlay.alpha = 0f
|
||||||
|
|
||||||
|
panel.post {
|
||||||
|
panel.visibility = View.VISIBLE
|
||||||
|
panel.animate().translationX(0f).setDuration(250).start()
|
||||||
|
overlay.animate().alpha(1f).setDuration(250).start()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun hideFilterPanel() {
|
||||||
|
val panel = binding.filterPanel.root
|
||||||
|
val overlay = binding.filterOverlay
|
||||||
|
|
||||||
|
if (panel.visibility != View.VISIBLE) return
|
||||||
|
|
||||||
|
panel.animate()
|
||||||
|
.translationX(panel.width.toFloat())
|
||||||
|
.setDuration(250)
|
||||||
|
.withEndAction { panel.visibility = View.GONE }
|
||||||
|
.start()
|
||||||
|
|
||||||
|
overlay.animate()
|
||||||
|
.alpha(0f)
|
||||||
|
.setDuration(250)
|
||||||
|
.withEndAction { overlay.visibility = View.GONE }
|
||||||
|
.start()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onBackPressed() {
|
||||||
|
if (viewModel.filterVisible.value == true) {
|
||||||
|
viewModel.closeFilter()
|
||||||
|
} else {
|
||||||
|
super.onBackPressed()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun start(context: Context) {
|
fun start(context: Context) {
|
||||||
|
|||||||
@@ -110,8 +110,16 @@ class IntImpStorageUseActivity :
|
|||||||
|
|
||||||
val selectedStorage = selectedStorageUseList[0]
|
val selectedStorage = selectedStorageUseList[0]
|
||||||
|
|
||||||
// 弹出库位选择弹框,选择后再调用接口
|
// 已出库的分单不允许修改库位
|
||||||
IntImpModifyStorageDialogModel { dialog ->
|
if (!selectedStorage.outOpId.isNullOrEmpty() || !selectedStorage.outDate.isNullOrEmpty()) {
|
||||||
|
showToast("该分单已出库,不允许修改库位")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 弹出库位选择弹框,选择后再调用接口,传入当前库位ID以预填充
|
||||||
|
IntImpModifyStorageDialogModel(
|
||||||
|
currentLocationId = selectedStorage.locationId?.toString() ?: ""
|
||||||
|
) { dialog ->
|
||||||
val locationName = dialog.locationName
|
val locationName = dialog.locationName
|
||||||
val locationId = dialog.locationId
|
val locationId = dialog.locationId
|
||||||
viewModel.performModifyStorage(locationName, locationId, selectedStorage)
|
viewModel.performModifyStorage(locationName, locationId, selectedStorage)
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import dev.utils.app.info.KeyValue
|
|||||||
* 国际进港 - 修改库位对话框
|
* 国际进港 - 修改库位对话框
|
||||||
*/
|
*/
|
||||||
class IntImpModifyStorageDialogModel(
|
class IntImpModifyStorageDialogModel(
|
||||||
|
private val currentLocationId: String = "",
|
||||||
private val callback: (IntImpModifyStorageDialogModel) -> Unit
|
private val callback: (IntImpModifyStorageDialogModel) -> Unit
|
||||||
) : BaseDialogModel<DialogIntImpModifyStorageBinding>(DIALOG_TYPE_CENTER) {
|
) : BaseDialogModel<DialogIntImpModifyStorageBinding>(DIALOG_TYPE_CENTER) {
|
||||||
|
|
||||||
@@ -54,6 +55,10 @@ class IntImpModifyStorageDialogModel(
|
|||||||
onSuccess = { result ->
|
onSuccess = { result ->
|
||||||
val list = result.data?.map { it.toKeyValue() } ?: emptyList()
|
val list = result.data?.map { it.toKeyValue() } ?: emptyList()
|
||||||
locationList.value = list
|
locationList.value = list
|
||||||
|
// 列表加载完成后,预选当前库位
|
||||||
|
if (currentLocationId.isNotEmpty()) {
|
||||||
|
selectedLocationCode.value = currentLocationId
|
||||||
|
}
|
||||||
}
|
}
|
||||||
onFailed = { _, msg ->
|
onFailed = { _, msg ->
|
||||||
showToast(msg ?: "加载库位列表失败")
|
showToast(msg ?: "加载库位列表失败")
|
||||||
|
|||||||
@@ -1,87 +0,0 @@
|
|||||||
package com.lukouguoji.gjj.dialog
|
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.content.res.ColorStateList
|
|
||||||
import android.graphics.Color
|
|
||||||
import android.view.View
|
|
||||||
import android.widget.ImageView
|
|
||||||
import android.widget.TextView
|
|
||||||
import androidx.lifecycle.MutableLiveData
|
|
||||||
import com.lukouguoji.gjj.R
|
|
||||||
import com.lukouguoji.gjj.databinding.DialogIntImpQueryFilterBinding
|
|
||||||
import com.lukouguoji.module_base.base.BaseDialogModel
|
|
||||||
import com.lxj.xpopup.XPopup
|
|
||||||
import com.lxj.xpopup.enums.PopupPosition
|
|
||||||
import dev.DevUtils
|
|
||||||
import dev.utils.app.info.KeyValue
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 国际进港查询筛选抽屉
|
|
||||||
*/
|
|
||||||
class IntImpQueryFilterDialogModel(
|
|
||||||
val spCode: MutableLiveData<String>,
|
|
||||||
val flightNo: MutableLiveData<String>,
|
|
||||||
val dest: MutableLiveData<String>,
|
|
||||||
val awbType: MutableLiveData<String>,
|
|
||||||
val businessType: MutableLiveData<String>,
|
|
||||||
val goodsCn: MutableLiveData<String>,
|
|
||||||
private val onConfirm: () -> Unit
|
|
||||||
) : BaseDialogModel<DialogIntImpQueryFilterBinding>(DIALOG_TYPE_DRAWER) {
|
|
||||||
|
|
||||||
val awbTypeList = MutableLiveData(
|
|
||||||
listOf(
|
|
||||||
KeyValue("全部", ""),
|
|
||||||
KeyValue("主单", "1"),
|
|
||||||
KeyValue("分单", "2")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
val businessTypeList = MutableLiveData(
|
|
||||||
listOf(
|
|
||||||
KeyValue("全部", ""),
|
|
||||||
KeyValue("普货", "1"),
|
|
||||||
KeyValue("特货", "2")
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
override fun layoutId() = R.layout.dialog_int_imp_query_filter
|
|
||||||
|
|
||||||
override fun onBuild(builder: XPopup.Builder) {
|
|
||||||
super.onBuild(builder)
|
|
||||||
builder.popupPosition(PopupPosition.Right)
|
|
||||||
val activity = DevUtils.getTopActivity()
|
|
||||||
val activityWidth = activity.window.decorView.width
|
|
||||||
builder.maxWidth(activityWidth / 3)
|
|
||||||
builder.popupWidth(activityWidth / 3)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onDialogCreated(context: Context) {
|
|
||||||
binding.model = this
|
|
||||||
binding.lifecycleOwner = context as? androidx.lifecycle.LifecycleOwner
|
|
||||||
|
|
||||||
val titleColor = Color.parseColor("#666666")
|
|
||||||
binding.root.findViewById<TextView>(R.id.title_name)?.text = "筛选条件"
|
|
||||||
binding.root.findViewById<TextView>(R.id.title_name)?.setTextColor(titleColor)
|
|
||||||
binding.root.findViewById<TextView>(R.id.tool_tv_back)?.setTextColor(titleColor)
|
|
||||||
binding.root.findViewById<ImageView>(R.id.tool_iv_back)?.imageTintList = ColorStateList.valueOf(titleColor)
|
|
||||||
binding.root.findViewById<View>(R.id.toolbar)?.setBackgroundColor(Color.WHITE)
|
|
||||||
|
|
||||||
binding.root.findViewById<View>(R.id.tool_back)?.setOnClickListener {
|
|
||||||
dismiss()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun onResetClick() {
|
|
||||||
spCode.value = ""
|
|
||||||
flightNo.value = ""
|
|
||||||
dest.value = ""
|
|
||||||
awbType.value = ""
|
|
||||||
businessType.value = ""
|
|
||||||
goodsCn.value = ""
|
|
||||||
}
|
|
||||||
|
|
||||||
fun onConfirmClick() {
|
|
||||||
dismiss()
|
|
||||||
onConfirm()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -21,5 +21,11 @@ class IntImpAccidentVisaViewHolder(view: View) :
|
|||||||
bean.checked.set(!bean.checked.get())
|
bean.checked.set(!bean.checked.get())
|
||||||
binding.executePendingBindings()
|
binding.executePendingBindings()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 侧滑菜单 - 修改按钮
|
||||||
|
binding.btnEdit.setOnClickListener {
|
||||||
|
binding.swipeMenu.quickClose()
|
||||||
|
clickListener?.onItemClick(position, 2000) // type=2000表示修改操作
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.lukouguoji.gjj.viewModel
|
|||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import androidx.lifecycle.MediatorLiveData
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.lukouguoji.module_base.base.BaseViewModel
|
import com.lukouguoji.module_base.base.BaseViewModel
|
||||||
@@ -11,6 +12,7 @@ import com.lukouguoji.module_base.common.DetailsPageType
|
|||||||
import com.lukouguoji.module_base.http.net.NetApply
|
import com.lukouguoji.module_base.http.net.NetApply
|
||||||
import com.lukouguoji.module_base.impl.FlowBus
|
import com.lukouguoji.module_base.impl.FlowBus
|
||||||
import com.lukouguoji.module_base.ktx.finish
|
import com.lukouguoji.module_base.ktx.finish
|
||||||
|
import com.lukouguoji.module_base.ktx.formatDate
|
||||||
import com.lukouguoji.module_base.ktx.launchCollect
|
import com.lukouguoji.module_base.ktx.launchCollect
|
||||||
import com.lukouguoji.module_base.ktx.launchLoadingCollect
|
import com.lukouguoji.module_base.ktx.launchLoadingCollect
|
||||||
import com.lukouguoji.module_base.ktx.noNull
|
import com.lukouguoji.module_base.ktx.noNull
|
||||||
@@ -19,6 +21,7 @@ import com.lukouguoji.module_base.ktx.toRequestBody
|
|||||||
import com.lukouguoji.module_base.ktx.verifyNullOrEmpty
|
import com.lukouguoji.module_base.ktx.verifyNullOrEmpty
|
||||||
import com.lukouguoji.module_base.util.DictUtils
|
import com.lukouguoji.module_base.util.DictUtils
|
||||||
import dev.utils.app.info.KeyValue
|
import dev.utils.app.info.KeyValue
|
||||||
|
import dev.utils.common.DateUtils
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
class GjjManifestAddViewModel : BaseViewModel() {
|
class GjjManifestAddViewModel : BaseViewModel() {
|
||||||
@@ -32,15 +35,12 @@ class GjjManifestAddViewModel : BaseViewModel() {
|
|||||||
// 航班ID
|
// 航班ID
|
||||||
var fid: String = ""
|
var fid: String = ""
|
||||||
|
|
||||||
// 航班日期
|
// 航班日期(新增模式默认今天)
|
||||||
val flightDate = MutableLiveData("")
|
val flightDate = MutableLiveData(DateUtils.getCurrentTime().formatDate())
|
||||||
|
|
||||||
// 航班号
|
// 航班号
|
||||||
val flightNo = MutableLiveData("")
|
val flightNo = MutableLiveData("")
|
||||||
|
|
||||||
// 航程
|
|
||||||
val range = MutableLiveData("")
|
|
||||||
|
|
||||||
// 运单号
|
// 运单号
|
||||||
val waybillNo = MutableLiveData("")
|
val waybillNo = MutableLiveData("")
|
||||||
|
|
||||||
@@ -80,12 +80,10 @@ class GjjManifestAddViewModel : BaseViewModel() {
|
|||||||
fid = flight.fid.noNull()
|
fid = flight.fid.noNull()
|
||||||
departure.value = flight.fdep.noNull()
|
departure.value = flight.fdep.noNull()
|
||||||
destination.value = flight.fdest.noNull()
|
destination.value = flight.fdest.noNull()
|
||||||
range.value = flight.range.noNull()
|
|
||||||
} else {
|
} else {
|
||||||
fid = ""
|
fid = ""
|
||||||
departure.value = ""
|
departure.value = ""
|
||||||
destination.value = ""
|
destination.value = ""
|
||||||
range.value = ""
|
|
||||||
showToast(it.msg.noNull("获取航班信息失败"))
|
showToast(it.msg.noNull("获取航班信息失败"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -93,7 +91,6 @@ class GjjManifestAddViewModel : BaseViewModel() {
|
|||||||
fid = ""
|
fid = ""
|
||||||
departure.value = ""
|
departure.value = ""
|
||||||
destination.value = ""
|
destination.value = ""
|
||||||
range.value = ""
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -119,6 +116,17 @@ class GjjManifestAddViewModel : BaseViewModel() {
|
|||||||
// 目的港
|
// 目的港
|
||||||
val destination = MutableLiveData("")
|
val destination = MutableLiveData("")
|
||||||
|
|
||||||
|
// 航程(自动拼接:始发站-目的站)
|
||||||
|
val range = MediatorLiveData<String>().apply {
|
||||||
|
val update = {
|
||||||
|
val dep = departure.value ?: ""
|
||||||
|
val dest = destination.value ?: ""
|
||||||
|
value = if (dep.isNotEmpty() || dest.isNotEmpty()) "$dep-$dest" else ""
|
||||||
|
}
|
||||||
|
addSource(departure) { update() }
|
||||||
|
addSource(destination) { update() }
|
||||||
|
}
|
||||||
|
|
||||||
// 品名(中)
|
// 品名(中)
|
||||||
val goodsNameCn = MutableLiveData("")
|
val goodsNameCn = MutableLiveData("")
|
||||||
|
|
||||||
@@ -154,10 +162,10 @@ class GjjManifestAddViewModel : BaseViewModel() {
|
|||||||
val waybillType = MutableLiveData("")
|
val waybillType = MutableLiveData("")
|
||||||
|
|
||||||
init {
|
init {
|
||||||
DictUtils.getAgentList(addAll = false) {
|
DictUtils.getIntImpAgentList(addAll = false) {
|
||||||
agentList.postValue(listOf(KeyValue("", "")) + it)
|
agentList.postValue(listOf(KeyValue("", "")) + it)
|
||||||
}
|
}
|
||||||
DictUtils.getSpecialCodeList(addAll = false, flag = 1, ieFlag = "I") {
|
DictUtils.getSpecialCodeList(addAll = false, flag = 1, ieFlag = "") {
|
||||||
val list = arrayListOf<KeyValue>()
|
val list = arrayListOf<KeyValue>()
|
||||||
it.find { b -> b.key.contains("普通货物") }?.let { b ->
|
it.find { b -> b.key.contains("普通货物") }?.let { b ->
|
||||||
list.add(b)
|
list.add(b)
|
||||||
@@ -167,8 +175,14 @@ class GjjManifestAddViewModel : BaseViewModel() {
|
|||||||
}
|
}
|
||||||
DictUtils.getBusinessTypeList(addAll = false) {
|
DictUtils.getBusinessTypeList(addAll = false) {
|
||||||
businessTypeList.postValue(it)
|
businessTypeList.postValue(it)
|
||||||
|
// 新增模式下默认选中"普通货物运输"
|
||||||
|
if (pageType.value == DetailsPageType.Add && businessType.value.isNullOrEmpty()) {
|
||||||
|
it.find { b -> b.key.contains("普通货物运输") }?.let { b ->
|
||||||
|
businessType.postValue(b.value)
|
||||||
}
|
}
|
||||||
DictUtils.getGjjPackageTypeList(addAll = false) {
|
}
|
||||||
|
}
|
||||||
|
DictUtils.getShouYunPackageTypeList {
|
||||||
packageTypeList.postValue(listOf(KeyValue("", "")) + it)
|
packageTypeList.postValue(listOf(KeyValue("", "")) + it)
|
||||||
}
|
}
|
||||||
DictUtils.getGjjGoodsTypeList(addAll = false) {
|
DictUtils.getGjjGoodsTypeList(addAll = false) {
|
||||||
@@ -198,12 +212,22 @@ class GjjManifestAddViewModel : BaseViewModel() {
|
|||||||
departure.value = intent.getStringExtra(Constant.Key.DEPARTURE).noNull()
|
departure.value = intent.getStringExtra(Constant.Key.DEPARTURE).noNull()
|
||||||
destination.value = intent.getStringExtra(Constant.Key.DESTINATION).noNull()
|
destination.value = intent.getStringExtra(Constant.Key.DESTINATION).noNull()
|
||||||
|
|
||||||
|
// 回填航班日期和航班号(从列表页传入)
|
||||||
|
val passedFlightDate = intent.getStringExtra("flightDate").noNull()
|
||||||
|
val passedFlightNo = intent.getStringExtra("flightNo").noNull()
|
||||||
|
if (passedFlightDate.isNotEmpty()) {
|
||||||
|
flightDate.value = passedFlightDate
|
||||||
|
}
|
||||||
|
if (passedFlightNo.isNotEmpty()) {
|
||||||
|
flightNo.value = passedFlightNo
|
||||||
|
}
|
||||||
|
// 如果航班日期和航班号都有值且已从列表页获得航班信息,标记已查询避免重复请求
|
||||||
|
if (passedFlightDate.isNotEmpty() && passedFlightNo.isNotEmpty() && fid.isNotEmpty()) {
|
||||||
|
lastQueriedFlight = "$passedFlightDate-$passedFlightNo"
|
||||||
|
}
|
||||||
|
|
||||||
// 编辑模式:从Bean对象加载数据
|
// 编辑模式:从Bean对象加载数据
|
||||||
if (pageType.value == DetailsPageType.Modify) {
|
if (pageType.value == DetailsPageType.Modify) {
|
||||||
// 回填航班日期和航班号(Bean中不包含,从列表页传入)
|
|
||||||
flightDate.value = intent.getStringExtra("flightDate").noNull()
|
|
||||||
flightNo.value = intent.getStringExtra("flightNo").noNull()
|
|
||||||
|
|
||||||
val bean = intent.getSerializableExtra(Constant.Key.BEAN)
|
val bean = intent.getSerializableExtra(Constant.Key.BEAN)
|
||||||
if (bean is com.lukouguoji.module_base.bean.GjjManifest) {
|
if (bean is com.lukouguoji.module_base.bean.GjjManifest) {
|
||||||
loadManifestFromBean(bean)
|
loadManifestFromBean(bean)
|
||||||
@@ -267,17 +291,45 @@ class GjjManifestAddViewModel : BaseViewModel() {
|
|||||||
waybillType.value = manifest.awbType
|
waybillType.value = manifest.awbType
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验运单号格式
|
||||||
|
* 规则:纯数字,固定11位,后8位中前7位 mod 7 == 最后一位
|
||||||
|
*/
|
||||||
|
private fun verifyWaybillNo(wbNo: String?): Boolean {
|
||||||
|
if (wbNo.isNullOrEmpty()) return false
|
||||||
|
if (wbNo.length != 11) {
|
||||||
|
showToast("运单号必须为11位数字")
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if (!wbNo.all { it.isDigit() }) {
|
||||||
|
showToast("运单号必须为纯数字")
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
// 后8位:前7位 mod 7 == 最后一位
|
||||||
|
val last8 = wbNo.substring(3) // 后8位
|
||||||
|
val first7ofLast8 = last8.substring(0, 7).toLong()
|
||||||
|
val lastDigit = last8.last().toString().toInt()
|
||||||
|
if (first7ofLast8 % 7 != lastDigit.toLong()) {
|
||||||
|
showToast("运单号校验位不正确")
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存点击
|
* 保存点击
|
||||||
*/
|
*/
|
||||||
fun onSaveClick(view: View) {
|
fun onSaveClick(view: View) {
|
||||||
if ((waybillNo.value.verifyNullOrEmpty("请输入运单号")
|
if ((waybillNo.value.verifyNullOrEmpty("请输入运单号")
|
||||||
|
|| verifyWaybillNo(waybillNo.value)
|
||||||
|| agent.value.verifyNullOrEmpty("请选择代理")
|
|| agent.value.verifyNullOrEmpty("请选择代理")
|
||||||
|| waybillNum.value.verifyNullOrEmpty("请输入运单件数")
|
|| waybillNum.value.verifyNullOrEmpty("请输入运单件数")
|
||||||
|| actualNum.value.verifyNullOrEmpty("请输入实到数量")
|
|
||||||
|| goodsNameEn.value.verifyNullOrEmpty("请输入品名(英)")
|
|
||||||
|| actualWeight.value.verifyNullOrEmpty("请输入实到重量")
|
|| actualWeight.value.verifyNullOrEmpty("请输入实到重量")
|
||||||
|| packageType.value.verifyNullOrEmpty("请选择包装类型")
|
|| goodsNameEn.value.verifyNullOrEmpty("请输入品名(英)")
|
||||||
|
|| waybillType.value.verifyNullOrEmpty("请选择运单类型")
|
||||||
|
|| businessType.value.verifyNullOrEmpty("请选择业务类型")
|
||||||
|
|| departure.value.verifyNullOrEmpty("请输入始发站")
|
||||||
|
|| destination.value.verifyNullOrEmpty("请输入目的站")
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
return
|
return
|
||||||
@@ -288,7 +340,7 @@ class GjjManifestAddViewModel : BaseViewModel() {
|
|||||||
"fid" to fid,
|
"fid" to fid,
|
||||||
"wbNo" to waybillNo.value,
|
"wbNo" to waybillNo.value,
|
||||||
"agentCode" to agent.value,
|
"agentCode" to agent.value,
|
||||||
"spCode" to specialCode.value,
|
"spCode" to specialCode.value.let { if (it.isNullOrEmpty()) "NOR" else it },
|
||||||
"businessType" to businessType.value,
|
"businessType" to businessType.value,
|
||||||
"totalPc" to waybillNum.value,
|
"totalPc" to waybillNum.value,
|
||||||
"pc" to actualNum.value,
|
"pc" to actualNum.value,
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ class GjjManifestDetailsViewModel : BaseViewModel(), IGetData {
|
|||||||
DictUtils.getAgentList(addAll = false, checkedValue = data.agent) {
|
DictUtils.getAgentList(addAll = false, checkedValue = data.agent) {
|
||||||
agentList.postValue(it)
|
agentList.postValue(it)
|
||||||
}
|
}
|
||||||
DictUtils.getSpecialCodeList(addAll = false, flag = 1, ieFlag = "I", checkedValue = data.spCode) {
|
DictUtils.getSpecialCodeList(addAll = false, flag = 1, ieFlag = "", checkedValue = data.spCode) {
|
||||||
specialCodeList.postValue(it)
|
specialCodeList.postValue(it)
|
||||||
}
|
}
|
||||||
DictUtils.getBusinessTypeList(
|
DictUtils.getBusinessTypeList(
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.lukouguoji.module_base.bean.GjjDeclareParam
|
|||||||
import com.lukouguoji.module_base.bean.GjjImportManifest
|
import com.lukouguoji.module_base.bean.GjjImportManifest
|
||||||
import com.lukouguoji.module_base.common.Constant
|
import com.lukouguoji.module_base.common.Constant
|
||||||
import com.lukouguoji.module_base.common.ConstantEvent
|
import com.lukouguoji.module_base.common.ConstantEvent
|
||||||
|
import com.lukouguoji.gjj.dialog.IntImpTallyResetDialogModel
|
||||||
import com.lukouguoji.module_base.http.net.NetApply
|
import com.lukouguoji.module_base.http.net.NetApply
|
||||||
import com.lukouguoji.module_base.impl.FlowBus
|
import com.lukouguoji.module_base.impl.FlowBus
|
||||||
import com.lukouguoji.module_base.ktx.commonAdapter
|
import com.lukouguoji.module_base.ktx.commonAdapter
|
||||||
@@ -134,11 +135,11 @@ class IntArrAirManifestViewModel : BasePageViewModel() {
|
|||||||
fun resetStatusClick() {
|
fun resetStatusClick() {
|
||||||
val (maWbList, haWbList) = getSelectedItems("请选择要重置的舱单") ?: return
|
val (maWbList, haWbList) = getSelectedItems("请选择要重置的舱单") ?: return
|
||||||
|
|
||||||
|
val dialog = IntImpTallyResetDialogModel { dialogModel ->
|
||||||
val param = GjjDeclareParam(
|
val param = GjjDeclareParam(
|
||||||
maWbList = maWbList,
|
maWbList = maWbList,
|
||||||
haWbList = haWbList,
|
haWbList = haWbList,
|
||||||
restStatus = null,
|
restStatus = dialogModel.resetStatusCode
|
||||||
resetReason = "状态重置"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
launchLoadingCollect({ NetApply.api.resetIntArrManifestStatus(param.toRequestBody()) }) {
|
launchLoadingCollect({ NetApply.api.resetIntArrManifestStatus(param.toRequestBody()) }) {
|
||||||
@@ -152,6 +153,9 @@ class IntArrAirManifestViewModel : BasePageViewModel() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dialog.show()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 补充信息按钮点击(只针对主单)
|
* 补充信息按钮点击(只针对主单)
|
||||||
*/
|
*/
|
||||||
@@ -250,6 +254,19 @@ class IntArrAirManifestViewModel : BasePageViewModel() {
|
|||||||
launchLoadingCollect({ NetApply.api.getIntArrAirManifestList(listParams) }) {
|
launchLoadingCollect({ NetApply.api.getIntArrAirManifestList(listParams) }) {
|
||||||
onSuccess = { result ->
|
onSuccess = { result ->
|
||||||
isAllExpanded.value = false
|
isAllExpanded.value = false
|
||||||
|
// 如果接口未返回航班日期/航班号,用筛选条件填充
|
||||||
|
val fd = flightDate.value ?: ""
|
||||||
|
val fn = flightNo.value ?: ""
|
||||||
|
result.list?.forEach { airManifest ->
|
||||||
|
airManifest.maWb?.let {
|
||||||
|
if (it.fdate.isEmpty()) it.fdate = fd
|
||||||
|
if (it.fno.isEmpty()) it.fno = fn
|
||||||
|
}
|
||||||
|
airManifest.haWbList?.forEach {
|
||||||
|
if (it.fdate.isEmpty()) it.fdate = fd
|
||||||
|
if (it.fno.isEmpty()) it.fno = fn
|
||||||
|
}
|
||||||
|
}
|
||||||
pageModel.handleListBean(result.toBaseListBean())
|
pageModel.handleListBean(result.toBaseListBean())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import com.lukouguoji.module_base.ktx.launchCollect
|
|||||||
import com.lukouguoji.module_base.ktx.launchLoadingCollect
|
import com.lukouguoji.module_base.ktx.launchLoadingCollect
|
||||||
import com.lukouguoji.module_base.ktx.showToast
|
import com.lukouguoji.module_base.ktx.showToast
|
||||||
import com.lukouguoji.module_base.ktx.toRequestBody
|
import com.lukouguoji.module_base.ktx.toRequestBody
|
||||||
|
import com.lukouguoji.module_base.ktx.verifyNullOrEmpty
|
||||||
import dev.utils.app.info.KeyValue
|
import dev.utils.app.info.KeyValue
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
@@ -56,7 +57,7 @@ class IntArrSupplementInfoViewModel : BaseViewModel() {
|
|||||||
* 加载国家代码下拉列表
|
* 加载国家代码下拉列表
|
||||||
*/
|
*/
|
||||||
private fun loadCountryCodeList() {
|
private fun loadCountryCodeList() {
|
||||||
launchCollect({ NetApply.api.getAreaTypeList() }) {
|
launchCollect({ NetApply.api.getCountryCodeList() }) {
|
||||||
onSuccess = { result ->
|
onSuccess = { result ->
|
||||||
val keyValueList = result.data?.mapNotNull { bean ->
|
val keyValueList = result.data?.mapNotNull { bean ->
|
||||||
if (bean.code != null && bean.name != null) {
|
if (bean.code != null && bean.name != null) {
|
||||||
@@ -96,6 +97,17 @@ class IntArrSupplementInfoViewModel : BaseViewModel() {
|
|||||||
fun save() {
|
fun save() {
|
||||||
val formBean = dataBean.value ?: return
|
val formBean = dataBean.value ?: return
|
||||||
|
|
||||||
|
// 收货人必填校验
|
||||||
|
if (formBean.consigneeName.verifyNullOrEmpty("收货人名称不能为空")) return
|
||||||
|
if (formBean.consigneeCountryCode.verifyNullOrEmpty("收货人国家代码不能为空")) return
|
||||||
|
if (formBean.consigneeComType.verifyNullOrEmpty("收货人通讯方式不能为空")) return
|
||||||
|
if (formBean.consigneePNum.verifyNullOrEmpty("收货人联系号码不能为空")) return
|
||||||
|
// 发货人必填校验
|
||||||
|
if (formBean.consignorName.verifyNullOrEmpty("发货人名称不能为空")) return
|
||||||
|
if (formBean.consignorCountryCode.verifyNullOrEmpty("发货人国家代码不能为空")) return
|
||||||
|
if (formBean.consignorComType.verifyNullOrEmpty("发货人通讯方式不能为空")) return
|
||||||
|
if (formBean.consignorPNum.verifyNullOrEmpty("发货人联系号码不能为空")) return
|
||||||
|
|
||||||
if (manifestList.isEmpty()) {
|
if (manifestList.isEmpty()) {
|
||||||
showToast("无可保存的数据")
|
showToast("无可保存的数据")
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -0,0 +1,271 @@
|
|||||||
|
package com.lukouguoji.gjj.viewModel
|
||||||
|
|
||||||
|
import android.content.Intent
|
||||||
|
import androidx.lifecycle.LifecycleOwner
|
||||||
|
import androidx.lifecycle.MutableLiveData
|
||||||
|
import androidx.lifecycle.viewModelScope
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
import com.lukouguoji.gjj.R
|
||||||
|
import com.lukouguoji.module_base.base.BaseViewModel
|
||||||
|
import com.lukouguoji.module_base.bean.FileBean
|
||||||
|
import com.lukouguoji.module_base.bean.GjAccidentVisaEditBean
|
||||||
|
import com.lukouguoji.module_base.common.Constant
|
||||||
|
import com.lukouguoji.module_base.common.ConstantEvent
|
||||||
|
import com.lukouguoji.module_base.common.DetailsPageType
|
||||||
|
import com.lukouguoji.module_base.http.net.NetApply
|
||||||
|
import com.lukouguoji.module_base.impl.FlowBus
|
||||||
|
import com.lukouguoji.module_base.impl.ImageSelectViewHolder
|
||||||
|
import com.lukouguoji.module_base.interfaces.IOnItemClickListener
|
||||||
|
import com.lukouguoji.module_base.ktx.commonAdapter
|
||||||
|
import com.lukouguoji.module_base.ktx.launchCollect
|
||||||
|
import com.lukouguoji.module_base.ktx.launchLoadingCollect
|
||||||
|
import com.lukouguoji.module_base.ktx.noNull
|
||||||
|
import com.lukouguoji.module_base.ktx.showToast
|
||||||
|
import com.lukouguoji.module_base.ktx.toRequestBody
|
||||||
|
import com.lukouguoji.module_base.ktx.verifyNullOrEmpty
|
||||||
|
import com.lukouguoji.module_base.util.MediaUtil
|
||||||
|
import com.lukouguoji.module_base.util.UploadUtil
|
||||||
|
import dev.utils.app.info.KeyValue
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.flow.asFlow
|
||||||
|
import kotlinx.coroutines.flow.catch
|
||||||
|
import kotlinx.coroutines.flow.filter
|
||||||
|
import kotlinx.coroutines.flow.flowOn
|
||||||
|
import kotlinx.coroutines.flow.launchIn
|
||||||
|
import kotlinx.coroutines.flow.map
|
||||||
|
import kotlinx.coroutines.flow.onCompletion
|
||||||
|
import kotlinx.coroutines.flow.onEach
|
||||||
|
import kotlinx.coroutines.flow.onStart
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
|
class IntImpAccidentVisaEditViewModel : BaseViewModel(), IOnItemClickListener {
|
||||||
|
|
||||||
|
var id: Long = 0
|
||||||
|
|
||||||
|
val pageType = MutableLiveData(DetailsPageType.Add)
|
||||||
|
|
||||||
|
val dataBean = MutableLiveData(GjAccidentVisaEditBean())
|
||||||
|
|
||||||
|
// 图片列表
|
||||||
|
val itemLayoutId = R.layout.item_image_select
|
||||||
|
val itemViewHolder = ImageSelectViewHolder::class.java
|
||||||
|
var rv: RecyclerView? = null
|
||||||
|
|
||||||
|
// 下拉列表
|
||||||
|
val outerPackageList = MutableLiveData<List<KeyValue>>(emptyList())
|
||||||
|
val damageTypeList = MutableLiveData<List<KeyValue>>(emptyList())
|
||||||
|
val contentTypeList = MutableLiveData<List<KeyValue>>(emptyList())
|
||||||
|
val unusualTypeList = MutableLiveData<List<KeyValue>>(emptyList())
|
||||||
|
val photoList = MutableLiveData(
|
||||||
|
listOf(KeyValue("是", "是"), KeyValue("否", "否"))
|
||||||
|
)
|
||||||
|
|
||||||
|
// 航班级联查询
|
||||||
|
private var lastQueriedFlight = ""
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// 初始化
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
fun initOnCreate(intent: Intent) {
|
||||||
|
id = intent.getLongExtra(Constant.Key.ID, 0)
|
||||||
|
pageType.value = if (id == 0L) DetailsPageType.Add else DetailsPageType.Modify
|
||||||
|
|
||||||
|
loadDropdownLists()
|
||||||
|
|
||||||
|
if (id != 0L) {
|
||||||
|
loadDetail()
|
||||||
|
}
|
||||||
|
|
||||||
|
rv?.post {
|
||||||
|
rv?.commonAdapter()?.addItem(FileBean())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun loadDropdownLists() {
|
||||||
|
launchCollect({ NetApply.api.getPackTypeList() }) {
|
||||||
|
onSuccess = { result ->
|
||||||
|
outerPackageList.value = result.data?.mapNotNull { bean ->
|
||||||
|
bean.name?.let { name -> KeyValue(name, name) }
|
||||||
|
} ?: emptyList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
launchCollect({ NetApply.api.getDamageTypeList() }) {
|
||||||
|
onSuccess = { result ->
|
||||||
|
damageTypeList.value = result.data?.mapNotNull { bean ->
|
||||||
|
bean.name?.let { name -> KeyValue(name, name) }
|
||||||
|
} ?: emptyList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
launchCollect({ NetApply.api.getContentTypeList() }) {
|
||||||
|
onSuccess = { result ->
|
||||||
|
contentTypeList.value = result.data?.mapNotNull { bean ->
|
||||||
|
bean.name?.let { name -> KeyValue(name, name) }
|
||||||
|
} ?: emptyList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
launchCollect({ NetApply.api.getUnusualTypeList() }) {
|
||||||
|
onSuccess = { result ->
|
||||||
|
unusualTypeList.value = result.data?.mapNotNull { bean ->
|
||||||
|
bean.name?.let { name -> KeyValue(name, name) }
|
||||||
|
} ?: emptyList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun loadDetail() {
|
||||||
|
launchLoadingCollect({ NetApply.api.getGjAccidentVisaDetail(id) }) {
|
||||||
|
onSuccess = {
|
||||||
|
dataBean.value = it.data ?: GjAccidentVisaEditBean()
|
||||||
|
|
||||||
|
// 渲染图片
|
||||||
|
val bean = dataBean.value!!
|
||||||
|
val picList = bean.pic.split(",")
|
||||||
|
.filter { url -> url.isNotEmpty() }
|
||||||
|
.map { url -> FileBean(MediaUtil.fillUrl(url), url) }
|
||||||
|
val originalList = bean.originalPic.split(",")
|
||||||
|
.filter { url -> url.isNotEmpty() }
|
||||||
|
.map { url -> FileBean(MediaUtil.fillUrl(url)) }
|
||||||
|
for ((index, fileBean) in picList.withIndex()) {
|
||||||
|
if (index < originalList.size) {
|
||||||
|
picList[index].originalPic = originalList[index].path
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rv?.commonAdapter()?.loadMore(picList)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// 航班级联查询
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
fun onFlightDateInputComplete() {
|
||||||
|
lastQueriedFlight = ""
|
||||||
|
queryFlightIfReady()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun onFlightNoInputComplete() {
|
||||||
|
queryFlightIfReady()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun queryFlightIfReady() {
|
||||||
|
val bean = dataBean.value ?: return
|
||||||
|
val fdate = bean.fdate
|
||||||
|
val fno = bean.fno
|
||||||
|
if (fdate.isEmpty() || fno.isEmpty()) return
|
||||||
|
|
||||||
|
val key = "$fdate-$fno"
|
||||||
|
if (key == lastQueriedFlight) return
|
||||||
|
lastQueriedFlight = key
|
||||||
|
|
||||||
|
launchCollect({
|
||||||
|
NetApply.api.getGjFlightBean(
|
||||||
|
mapOf(
|
||||||
|
"fdate" to fdate,
|
||||||
|
"fno" to fno,
|
||||||
|
"ieFlag" to "I",
|
||||||
|
).toRequestBody()
|
||||||
|
)
|
||||||
|
}) {
|
||||||
|
onSuccess = {
|
||||||
|
if (it.verifySuccess() && it.data != null) {
|
||||||
|
val flight = it.data!!
|
||||||
|
val b = dataBean.value ?: GjAccidentVisaEditBean()
|
||||||
|
b.dep = flight.fdep.noNull()
|
||||||
|
b.dest = flight.fdest.noNull()
|
||||||
|
dataBean.value = b
|
||||||
|
} else {
|
||||||
|
val b = dataBean.value ?: GjAccidentVisaEditBean()
|
||||||
|
b.dep = ""
|
||||||
|
b.dest = ""
|
||||||
|
dataBean.value = b
|
||||||
|
showToast(it.msg.noNull("获取航班信息失败"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onFailed = { _, _ ->
|
||||||
|
val b = dataBean.value ?: GjAccidentVisaEditBean()
|
||||||
|
b.dep = ""
|
||||||
|
b.dest = ""
|
||||||
|
dataBean.value = b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// 保存
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
fun onSaveClick() {
|
||||||
|
val bean = dataBean.value ?: return
|
||||||
|
if (bean.fdate.verifyNullOrEmpty("请输入航班日期")) return
|
||||||
|
if (bean.fno.verifyNullOrEmpty("请输入航班号")) return
|
||||||
|
if (bean.wbNo.verifyNullOrEmpty("请输入运单号")) return
|
||||||
|
|
||||||
|
(rv?.commonAdapter()?.items ?: emptyList())
|
||||||
|
.asFlow()
|
||||||
|
.map { it as FileBean }
|
||||||
|
.filter { it.path.isNotEmpty() && it.url.isEmpty() }
|
||||||
|
.onEach {
|
||||||
|
val data = UploadUtil.upload(it.path).data
|
||||||
|
it.url = data?.newName ?: ""
|
||||||
|
it.originalPic = data?.zipFileName ?: ""
|
||||||
|
}
|
||||||
|
.flowOn(Dispatchers.IO)
|
||||||
|
.onStart { showLoading() }
|
||||||
|
.catch {
|
||||||
|
showToast(it.message.noNull("上传图片失败"))
|
||||||
|
dismissLoading()
|
||||||
|
}
|
||||||
|
.onCompletion {
|
||||||
|
launchLoadingCollect({
|
||||||
|
val list = (rv?.commonAdapter()?.items as List<FileBean>)
|
||||||
|
.filter { it.path.isNotEmpty() }
|
||||||
|
bean.picNumber = list.size.toString()
|
||||||
|
bean.originalPic = list.joinToString(separator = ",") { MediaUtil.removeUrl(it.url) }
|
||||||
|
bean.pic = list.joinToString(separator = ",") { MediaUtil.removeUrl(it.originalPic) }
|
||||||
|
bean.idFlag = "1"
|
||||||
|
|
||||||
|
if (pageType.value == DetailsPageType.Add) {
|
||||||
|
NetApply.api.saveGjAccidentVisa(bean.toRequestBody())
|
||||||
|
} else {
|
||||||
|
NetApply.api.modifyGjAccidentVisa(bean.toRequestBody())
|
||||||
|
}
|
||||||
|
}) {
|
||||||
|
onSuccess = {
|
||||||
|
showToast(it.msg.noNull("${pageType.value!!.title}成功"))
|
||||||
|
viewModelScope.launch {
|
||||||
|
FlowBus.with<String>(ConstantEvent.EVENT_REFRESH).emit("refresh")
|
||||||
|
}
|
||||||
|
getTopActivity().finish()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.launchIn(viewModelScope)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun onCancelClick() {
|
||||||
|
getTopActivity().finish()
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// 图片操作
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
override fun onItemClick(position: Int, type: Int) {
|
||||||
|
val adapter = rv!!.commonAdapter()!!
|
||||||
|
val bean = adapter.getItem(position) as FileBean
|
||||||
|
when (type) {
|
||||||
|
R.id.rl -> {
|
||||||
|
bean.canDelete.set(!bean.canDelete.get())
|
||||||
|
}
|
||||||
|
|
||||||
|
R.id.iv_delete -> {
|
||||||
|
adapter.removeItem(position)
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -123,6 +123,10 @@ class IntImpAccidentVisaViewModel : BasePageViewModel() {
|
|||||||
ScanModel.startScan(getTopActivity(), Constant.RequestCode.WAYBILL)
|
ScanModel.startScan(getTopActivity(), Constant.RequestCode.WAYBILL)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun addClick() {
|
||||||
|
com.lukouguoji.gjj.activity.IntImpAccidentVisaEditActivity.start(getTopActivity())
|
||||||
|
}
|
||||||
|
|
||||||
fun searchClick() {
|
fun searchClick() {
|
||||||
refresh()
|
refresh()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.lukouguoji.gjj.viewModel
|
|||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
|
import com.lukouguoji.gjj.activity.IntImpManifestSubEditActivity
|
||||||
import com.lukouguoji.module_base.base.BaseViewModel
|
import com.lukouguoji.module_base.base.BaseViewModel
|
||||||
import com.lukouguoji.module_base.bean.GjjHaWb
|
import com.lukouguoji.module_base.bean.GjjHaWb
|
||||||
import com.lukouguoji.module_base.bean.GjjManifest
|
import com.lukouguoji.module_base.bean.GjjManifest
|
||||||
@@ -11,7 +12,6 @@ import com.lukouguoji.module_base.common.ConstantEvent
|
|||||||
import com.lukouguoji.module_base.common.DetailsPageType
|
import com.lukouguoji.module_base.common.DetailsPageType
|
||||||
import com.lukouguoji.module_base.http.net.NetApply
|
import com.lukouguoji.module_base.http.net.NetApply
|
||||||
import com.lukouguoji.module_base.impl.FlowBus
|
import com.lukouguoji.module_base.impl.FlowBus
|
||||||
import com.lukouguoji.module_base.ktx.launchCollect
|
|
||||||
import com.lukouguoji.module_base.ktx.launchLoadingCollect
|
import com.lukouguoji.module_base.ktx.launchLoadingCollect
|
||||||
import com.lukouguoji.module_base.ktx.noNull
|
import com.lukouguoji.module_base.ktx.noNull
|
||||||
import com.lukouguoji.module_base.ktx.showToast
|
import com.lukouguoji.module_base.ktx.showToast
|
||||||
@@ -44,6 +44,17 @@ class IntImpManifestSubEditViewModel : BaseViewModel() {
|
|||||||
val weight = MutableLiveData("") // 重量
|
val weight = MutableLiveData("") // 重量
|
||||||
val goodsCn = MutableLiveData("") // 品名(中)
|
val goodsCn = MutableLiveData("") // 品名(中)
|
||||||
|
|
||||||
|
// 主单件数/重量
|
||||||
|
private var mainPc: Long = 0
|
||||||
|
private var mainWeight: Double = 0.0
|
||||||
|
|
||||||
|
// 其他分单件数/重量之和(不含当前编辑的分单)
|
||||||
|
private var otherSubPc: Long = 0
|
||||||
|
private var otherSubWeight: Double = 0.0
|
||||||
|
|
||||||
|
// 主分校验是否通过(true=绿色允许保存,false=红色不允许保存)
|
||||||
|
val isCheckValid = MutableLiveData(true)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化(从Intent获取参数)
|
* 初始化(从Intent获取参数)
|
||||||
*/
|
*/
|
||||||
@@ -61,6 +72,12 @@ class IntImpManifestSubEditViewModel : BaseViewModel() {
|
|||||||
waybillNo.value = manifest.getWaybillNo()
|
waybillNo.value = manifest.getWaybillNo()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取主分校验参数
|
||||||
|
mainPc = intent.getLongExtra(IntImpManifestSubEditActivity.KEY_MAIN_PC, 0)
|
||||||
|
mainWeight = intent.getDoubleExtra(IntImpManifestSubEditActivity.KEY_MAIN_WEIGHT, 0.0)
|
||||||
|
otherSubPc = intent.getLongExtra(IntImpManifestSubEditActivity.KEY_OTHER_SUB_PC, 0)
|
||||||
|
otherSubWeight = intent.getDoubleExtra(IntImpManifestSubEditActivity.KEY_OTHER_SUB_WEIGHT, 0.0)
|
||||||
|
|
||||||
// 编辑模式:回填分单数据
|
// 编辑模式:回填分单数据
|
||||||
if (pageType.value == DetailsPageType.Modify) {
|
if (pageType.value == DetailsPageType.Modify) {
|
||||||
val haWb = intent.getSerializableExtra("haWb") as? GjjHaWb
|
val haWb = intent.getSerializableExtra("haWb") as? GjjHaWb
|
||||||
@@ -69,28 +86,54 @@ class IntImpManifestSubEditViewModel : BaseViewModel() {
|
|||||||
subNo.value = haWb.hno
|
subNo.value = haWb.hno
|
||||||
pc.value = if (haWb.pc > 0) haWb.pc.toString() else ""
|
pc.value = if (haWb.pc > 0) haWb.pc.toString() else ""
|
||||||
weight.value = if (haWb.weight > 0) haWb.weight.toString() else ""
|
weight.value = if (haWb.weight > 0) haWb.weight.toString() else ""
|
||||||
goodsCn.value = haWb.goodsCn
|
goodsCn.value = haWb.goodsCn.ifEmpty { haWb.goods }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取主分校验数据
|
// 计算主分校验
|
||||||
loadMainSubCheck()
|
updateMainSubCheck()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取主单减去分单的件数重量
|
* 件数输入完成回调
|
||||||
*/
|
*/
|
||||||
private fun loadMainSubCheck() {
|
fun onPcInputComplete() {
|
||||||
if (mfId == 0L) return
|
updateMainSubCheck()
|
||||||
|
}
|
||||||
|
|
||||||
val params = mapOf("mfId" to mfId).toRequestBody()
|
/**
|
||||||
launchCollect({ NetApply.api.getMaWbMinusHaWb(params) }) {
|
* 重量输入完成回调
|
||||||
onSuccess = { result ->
|
*/
|
||||||
if (result.verifySuccess() && result.data != null) {
|
fun onWeightInputComplete() {
|
||||||
val data = result.data!!
|
updateMainSubCheck()
|
||||||
mainSubCheck.value = "剩余件数:${data.pc} 剩余重量:${data.weight}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实时计算主分校验
|
||||||
|
* 格式:分单之和件数/主单件数 分单之和重量/主单重量KG
|
||||||
|
* 颜色:分单之和 > 主单 → 红色(不允许保存),否则 → 绿色
|
||||||
|
*/
|
||||||
|
private fun updateMainSubCheck() {
|
||||||
|
val currentPc = pc.value?.toLongOrNull() ?: 0
|
||||||
|
val currentWeight = weight.value?.toDoubleOrNull() ?: 0.0
|
||||||
|
|
||||||
|
val totalSubPc = otherSubPc + currentPc
|
||||||
|
val totalSubWeight = otherSubWeight + currentWeight
|
||||||
|
|
||||||
|
mainSubCheck.value = "${totalSubPc}/${mainPc} ${formatWeight(totalSubWeight)}/${formatWeight(mainWeight)}KG"
|
||||||
|
|
||||||
|
// 件数或重量任一超过主单则校验不通过
|
||||||
|
isCheckValid.value = totalSubPc <= mainPc && totalSubWeight <= mainWeight
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 格式化重量显示(整数不显示小数位)
|
||||||
|
*/
|
||||||
|
private fun formatWeight(value: Double): String {
|
||||||
|
return if (value % 1.0 == 0.0) {
|
||||||
|
value.toLong().toString()
|
||||||
|
} else {
|
||||||
|
value.toString()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,6 +141,12 @@ class IntImpManifestSubEditViewModel : BaseViewModel() {
|
|||||||
* 保存
|
* 保存
|
||||||
*/
|
*/
|
||||||
fun onSaveClick() {
|
fun onSaveClick() {
|
||||||
|
// 主分校验不通过时禁止保存
|
||||||
|
if (isCheckValid.value == false) {
|
||||||
|
showToast("分单之和超过主单,不允许保存")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
val params = mutableMapOf<String, Any?>(
|
val params = mutableMapOf<String, Any?>(
|
||||||
"mfId" to mfId,
|
"mfId" to mfId,
|
||||||
"prefix" to prefix,
|
"prefix" to prefix,
|
||||||
|
|||||||
@@ -257,7 +257,9 @@ class IntImpManifestViewModel : BasePageViewModel() {
|
|||||||
context = getTopActivity(),
|
context = getTopActivity(),
|
||||||
fid = fid,
|
fid = fid,
|
||||||
dep = sendAddress.value ?: "",
|
dep = sendAddress.value ?: "",
|
||||||
dest = fdest.value ?: ""
|
dest = fdest.value ?: "",
|
||||||
|
flightDate = flightDate.value ?: "",
|
||||||
|
flightNo = flightNo.value ?: ""
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -375,7 +377,18 @@ class IntImpManifestViewModel : BasePageViewModel() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
IntImpManifestSubEditActivity.startForAdd(getTopActivity(), selectedItems[0])
|
val manifest = selectedItems[0]
|
||||||
|
if (manifest.haWbList == null) {
|
||||||
|
// 分单列表未加载,先加载再跳转
|
||||||
|
launchLoadingCollect({ NetApply.api.getIntImpManifestHaWbList(manifest.toRequestBody()) }) {
|
||||||
|
onSuccess = { result ->
|
||||||
|
manifest.haWbList = result.data ?: emptyList()
|
||||||
|
IntImpManifestSubEditActivity.startForAdd(getTopActivity(), manifest)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
IntImpManifestSubEditActivity.startForAdd(getTopActivity(), manifest)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.lukouguoji.gjj.viewModel
|
|||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
|
import androidx.lifecycle.Observer
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.lukouguoji.module_base.base.BaseViewModel
|
import com.lukouguoji.module_base.base.BaseViewModel
|
||||||
@@ -25,10 +26,27 @@ class IntImpPickUpChargeEditViewModel : BaseViewModel() {
|
|||||||
// 可编辑费用字段(String 用于双向绑定)
|
// 可编辑费用字段(String 用于双向绑定)
|
||||||
val tranChargeStr = MutableLiveData("") // 信息费
|
val tranChargeStr = MutableLiveData("") // 信息费
|
||||||
val whsChargeStr = MutableLiveData("") // 仓储费
|
val whsChargeStr = MutableLiveData("") // 仓储费
|
||||||
val drawBillChargeStr = MutableLiveData("") // 抽单费
|
val drawBillChargeStr = MutableLiveData("") // 文件处理费
|
||||||
val efrChargeStr = MutableLiveData("") // 冷藏费
|
val svlChargeStr = MutableLiveData("") // 叉车费
|
||||||
val svlChargeStr = MutableLiveData("") // 铲车费
|
|
||||||
val tallyChargeStr = MutableLiveData("") // 理货费
|
val tallyChargeStr = MutableLiveData("") // 理货费
|
||||||
|
val pipFeeStr = MutableLiveData("") // 精密仪器处理费
|
||||||
|
val lapFeeStr = MutableLiveData("") // 活体动物处理费
|
||||||
|
val totalAmountStr = MutableLiveData("") // 总费用(实时计算)
|
||||||
|
|
||||||
|
// 总费用计算观察者
|
||||||
|
private val totalCalculator = Observer<String> { calculateTotal() }
|
||||||
|
|
||||||
|
private fun calculateTotal() {
|
||||||
|
val total = (tranChargeStr.value?.toDoubleOrNull() ?: 0.0) +
|
||||||
|
(whsChargeStr.value?.toDoubleOrNull() ?: 0.0) +
|
||||||
|
(drawBillChargeStr.value?.toDoubleOrNull() ?: 0.0) +
|
||||||
|
(svlChargeStr.value?.toDoubleOrNull() ?: 0.0) +
|
||||||
|
(tallyChargeStr.value?.toDoubleOrNull() ?: 0.0) +
|
||||||
|
(dataBean.value?.optCharge ?: 0.0) +
|
||||||
|
(pipFeeStr.value?.toDoubleOrNull() ?: 0.0) +
|
||||||
|
(lapFeeStr.value?.toDoubleOrNull() ?: 0.0)
|
||||||
|
totalAmountStr.value = if (total != 0.0) total.toString() else ""
|
||||||
|
}
|
||||||
|
|
||||||
fun initOnCreated(intent: Intent) {
|
fun initOnCreated(intent: Intent) {
|
||||||
val jsonData = intent.getStringExtra(Constant.Key.DATA) ?: ""
|
val jsonData = intent.getStringExtra(Constant.Key.DATA) ?: ""
|
||||||
@@ -40,9 +58,22 @@ class IntImpPickUpChargeEditViewModel : BaseViewModel() {
|
|||||||
tranChargeStr.value = if (bean.tranCharge != 0.0) bean.tranCharge.toString() else ""
|
tranChargeStr.value = if (bean.tranCharge != 0.0) bean.tranCharge.toString() else ""
|
||||||
whsChargeStr.value = if (bean.whsCharge != 0.0) bean.whsCharge.toString() else ""
|
whsChargeStr.value = if (bean.whsCharge != 0.0) bean.whsCharge.toString() else ""
|
||||||
drawBillChargeStr.value = if (bean.drawBillCharge != 0.0) bean.drawBillCharge.toString() else ""
|
drawBillChargeStr.value = if (bean.drawBillCharge != 0.0) bean.drawBillCharge.toString() else ""
|
||||||
efrChargeStr.value = if (bean.efrCharge != 0.0) bean.efrCharge.toString() else ""
|
|
||||||
svlChargeStr.value = if (bean.svlCharge != 0.0) bean.svlCharge.toString() else ""
|
svlChargeStr.value = if (bean.svlCharge != 0.0) bean.svlCharge.toString() else ""
|
||||||
tallyChargeStr.value = if (bean.tallyCharge != 0.0) bean.tallyCharge.toString() else ""
|
tallyChargeStr.value = if (bean.tallyCharge != 0.0) bean.tallyCharge.toString() else ""
|
||||||
|
pipFeeStr.value = if (bean.pipFee != 0.0) bean.pipFee.toString() else ""
|
||||||
|
lapFeeStr.value = if (bean.lapFee != 0.0) bean.lapFee.toString() else ""
|
||||||
|
|
||||||
|
// 注册总费用实时计算
|
||||||
|
tranChargeStr.observeForever(totalCalculator)
|
||||||
|
whsChargeStr.observeForever(totalCalculator)
|
||||||
|
drawBillChargeStr.observeForever(totalCalculator)
|
||||||
|
svlChargeStr.observeForever(totalCalculator)
|
||||||
|
tallyChargeStr.observeForever(totalCalculator)
|
||||||
|
pipFeeStr.observeForever(totalCalculator)
|
||||||
|
lapFeeStr.observeForever(totalCalculator)
|
||||||
|
|
||||||
|
// 初始计算一次
|
||||||
|
calculateTotal()
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
showToast("数据解析失败")
|
showToast("数据解析失败")
|
||||||
getTopActivity().finish()
|
getTopActivity().finish()
|
||||||
@@ -63,9 +94,11 @@ class IntImpPickUpChargeEditViewModel : BaseViewModel() {
|
|||||||
bean.tranCharge = tranChargeStr.value?.toDoubleOrNull() ?: 0.0
|
bean.tranCharge = tranChargeStr.value?.toDoubleOrNull() ?: 0.0
|
||||||
bean.whsCharge = whsChargeStr.value?.toDoubleOrNull() ?: 0.0
|
bean.whsCharge = whsChargeStr.value?.toDoubleOrNull() ?: 0.0
|
||||||
bean.drawBillCharge = drawBillChargeStr.value?.toDoubleOrNull() ?: 0.0
|
bean.drawBillCharge = drawBillChargeStr.value?.toDoubleOrNull() ?: 0.0
|
||||||
bean.efrCharge = efrChargeStr.value?.toDoubleOrNull() ?: 0.0
|
|
||||||
bean.svlCharge = svlChargeStr.value?.toDoubleOrNull() ?: 0.0
|
bean.svlCharge = svlChargeStr.value?.toDoubleOrNull() ?: 0.0
|
||||||
bean.tallyCharge = tallyChargeStr.value?.toDoubleOrNull() ?: 0.0
|
bean.tallyCharge = tallyChargeStr.value?.toDoubleOrNull() ?: 0.0
|
||||||
|
bean.pipFee = pipFeeStr.value?.toDoubleOrNull() ?: 0.0
|
||||||
|
bean.lapFee = lapFeeStr.value?.toDoubleOrNull() ?: 0.0
|
||||||
|
bean.amount = totalAmountStr.value?.toDoubleOrNull() ?: 0.0
|
||||||
|
|
||||||
launchLoadingCollect({
|
launchLoadingCollect({
|
||||||
NetApply.api.modifyIntImpPickUpCharge(bean.toRequestBody())
|
NetApply.api.modifyIntImpPickUpCharge(bean.toRequestBody())
|
||||||
@@ -86,4 +119,15 @@ class IntImpPickUpChargeEditViewModel : BaseViewModel() {
|
|||||||
fun cancel() {
|
fun cancel() {
|
||||||
getTopActivity().finish()
|
getTopActivity().finish()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onCleared() {
|
||||||
|
super.onCleared()
|
||||||
|
tranChargeStr.removeObserver(totalCalculator)
|
||||||
|
whsChargeStr.removeObserver(totalCalculator)
|
||||||
|
drawBillChargeStr.removeObserver(totalCalculator)
|
||||||
|
svlChargeStr.removeObserver(totalCalculator)
|
||||||
|
tallyChargeStr.removeObserver(totalCalculator)
|
||||||
|
pipFeeStr.removeObserver(totalCalculator)
|
||||||
|
lapFeeStr.removeObserver(totalCalculator)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ class IntImpPickUpRecordViewModel : BasePageViewModel() {
|
|||||||
fun initSpecialCodeList() {
|
fun initSpecialCodeList() {
|
||||||
DictUtils.getSpecialCodeList(
|
DictUtils.getSpecialCodeList(
|
||||||
flag = 1, // 国际
|
flag = 1, // 国际
|
||||||
ieFlag = "I", // 进港
|
ieFlag = "",
|
||||||
parentcode = ""
|
parentcode = ""
|
||||||
) {
|
) {
|
||||||
spCodeList.value = it
|
spCodeList.value = it
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import com.lukouguoji.module_base.ktx.launchCollect
|
|||||||
import com.lukouguoji.module_base.ktx.launchLoadingCollect
|
import com.lukouguoji.module_base.ktx.launchLoadingCollect
|
||||||
import com.lukouguoji.module_base.ktx.showToast
|
import com.lukouguoji.module_base.ktx.showToast
|
||||||
import com.lukouguoji.module_base.ktx.toRequestBody
|
import com.lukouguoji.module_base.ktx.toRequestBody
|
||||||
|
import com.lukouguoji.module_base.util.DictUtils
|
||||||
import dev.utils.app.info.KeyValue
|
import dev.utils.app.info.KeyValue
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
@@ -88,7 +89,7 @@ class IntImpQueryEditViewModel : BaseViewModel() {
|
|||||||
* flag=1(国际), ieFlag=I(进港)
|
* flag=1(国际), ieFlag=I(进港)
|
||||||
*/
|
*/
|
||||||
private fun loadSpCodeList() {
|
private fun loadSpCodeList() {
|
||||||
launchCollect({ NetApply.api.getSpecialCodeList(1, "I", "") }) {
|
launchCollect({ NetApply.api.getSpecialCodeList(1, "", "") }) {
|
||||||
onSuccess = { result ->
|
onSuccess = { result ->
|
||||||
val list = result.data?.mapNotNull { bean ->
|
val list = result.data?.mapNotNull { bean ->
|
||||||
if (bean.name != null && bean.code != null) {
|
if (bean.name != null && bean.code != null) {
|
||||||
@@ -102,21 +103,14 @@ class IntImpQueryEditViewModel : BaseViewModel() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 加载包装类型下拉列表(国际进港专用)
|
* 加载包装类型下拉列表(收运包装类型)
|
||||||
*/
|
*/
|
||||||
private fun loadPackageTypeList() {
|
private fun loadPackageTypeList() {
|
||||||
launchCollect({ NetApply.api.getGjjPackTypeList() }) {
|
DictUtils.getShouYunPackageTypeList(checkedValue = dataBean.value?.packageType) {
|
||||||
onSuccess = { result ->
|
packageTypeList.postValue(it)
|
||||||
val list = result.data?.mapNotNull { bean ->
|
|
||||||
if (bean.packageName.isNotEmpty()) {
|
|
||||||
KeyValue(bean.packageName, bean.packageName)
|
|
||||||
} else null
|
|
||||||
} ?: emptyList()
|
|
||||||
packageTypeList.value = list
|
|
||||||
matchPackageType()
|
matchPackageType()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 加载运单类型下拉列表
|
* 加载运单类型下拉列表
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import android.content.Intent
|
|||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import com.lukouguoji.gjj.R
|
import com.lukouguoji.gjj.R
|
||||||
import com.lukouguoji.gjj.activity.IntImpQueryEditActivity
|
import com.lukouguoji.gjj.activity.IntImpQueryEditActivity
|
||||||
import com.lukouguoji.gjj.dialog.IntImpQueryFilterDialogModel
|
|
||||||
import com.lukouguoji.gjj.holder.IntImpQueryViewHolder
|
import com.lukouguoji.gjj.holder.IntImpQueryViewHolder
|
||||||
import com.lukouguoji.gjj.activity.IntImpQueryDetailsActivity
|
import com.lukouguoji.gjj.activity.IntImpQueryDetailsActivity
|
||||||
import com.lukouguoji.module_base.base.BasePageViewModel
|
import com.lukouguoji.module_base.base.BasePageViewModel
|
||||||
@@ -19,6 +18,7 @@ import com.lukouguoji.module_base.ktx.launchLoadingCollect
|
|||||||
import com.lukouguoji.module_base.ktx.showToast
|
import com.lukouguoji.module_base.ktx.showToast
|
||||||
import com.lukouguoji.module_base.ktx.toRequestBody
|
import com.lukouguoji.module_base.ktx.toRequestBody
|
||||||
import com.lukouguoji.module_base.model.ScanModel
|
import com.lukouguoji.module_base.model.ScanModel
|
||||||
|
import com.lukouguoji.module_base.util.DictUtils
|
||||||
import dev.utils.app.info.KeyValue
|
import dev.utils.app.info.KeyValue
|
||||||
import dev.utils.common.DateUtils
|
import dev.utils.common.DateUtils
|
||||||
import com.lukouguoji.module_base.ktx.formatDate
|
import com.lukouguoji.module_base.ktx.formatDate
|
||||||
@@ -55,10 +55,18 @@ class IntImpQueryViewModel : BasePageViewModel(), IOnItemClickListener {
|
|||||||
val totalPc = MutableLiveData("0")
|
val totalPc = MutableLiveData("0")
|
||||||
val totalWeight = MutableLiveData("0")
|
val totalWeight = MutableLiveData("0")
|
||||||
|
|
||||||
|
// ==================== 特码下拉 ====================
|
||||||
|
val spCodeList = MutableLiveData<List<KeyValue>>(emptyList())
|
||||||
|
|
||||||
|
// ==================== 筛选面板 ====================
|
||||||
|
val filterVisible = MutableLiveData(false)
|
||||||
|
val awbTypeList = MutableLiveData<List<KeyValue>>(emptyList())
|
||||||
|
val businessTypeList = MutableLiveData<List<KeyValue>>(emptyList())
|
||||||
|
|
||||||
// ==================== 筛选条件 ====================
|
// ==================== 筛选条件 ====================
|
||||||
val spCode = MutableLiveData("")
|
val spCode = MutableLiveData("")
|
||||||
val flightNo = MutableLiveData("")
|
val flightNo = MutableLiveData("")
|
||||||
val dest = MutableLiveData("")
|
val origin = MutableLiveData("")
|
||||||
val awbType = MutableLiveData("")
|
val awbType = MutableLiveData("")
|
||||||
val businessType = MutableLiveData("")
|
val businessType = MutableLiveData("")
|
||||||
val goodsCn = MutableLiveData("")
|
val goodsCn = MutableLiveData("")
|
||||||
@@ -76,16 +84,34 @@ class IntImpQueryViewModel : BasePageViewModel(), IOnItemClickListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun filterClick() {
|
fun filterClick() {
|
||||||
val filterDialog = IntImpQueryFilterDialogModel(
|
filterVisible.value = true
|
||||||
spCode = spCode,
|
}
|
||||||
flightNo = flightNo,
|
|
||||||
dest = dest,
|
fun closeFilter() {
|
||||||
awbType = awbType,
|
filterVisible.value = false
|
||||||
businessType = businessType,
|
}
|
||||||
goodsCn = goodsCn,
|
|
||||||
onConfirm = { refresh() }
|
fun resetFilter() {
|
||||||
)
|
spCode.value = ""
|
||||||
filterDialog.show()
|
flightNo.value = ""
|
||||||
|
origin.value = ""
|
||||||
|
awbType.value = ""
|
||||||
|
businessType.value = ""
|
||||||
|
goodsCn.value = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
fun confirmFilter() {
|
||||||
|
filterVisible.value = false
|
||||||
|
refresh()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun initFilterLists() {
|
||||||
|
DictUtils.getWaybillTypeList(type = "II", addAll = true, checkedValue = awbType.value) {
|
||||||
|
awbTypeList.postValue(it)
|
||||||
|
}
|
||||||
|
DictUtils.getBusinessTypeList(type = "II", addAll = true, checkedValue = businessType.value) {
|
||||||
|
businessTypeList.postValue(it)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getData() {
|
override fun getData() {
|
||||||
@@ -99,7 +125,7 @@ class IntImpQueryViewModel : BasePageViewModel(), IOnItemClickListener {
|
|||||||
"wbNo" to waybillNo.value!!.ifEmpty { null },
|
"wbNo" to waybillNo.value!!.ifEmpty { null },
|
||||||
"spCode" to spCode.value!!.ifEmpty { null },
|
"spCode" to spCode.value!!.ifEmpty { null },
|
||||||
"fno" to flightNo.value!!.ifEmpty { null },
|
"fno" to flightNo.value!!.ifEmpty { null },
|
||||||
"dest" to dest.value!!.ifEmpty { null },
|
"origin" to origin.value!!.ifEmpty { null },
|
||||||
"awbType" to awbType.value!!.ifEmpty { null },
|
"awbType" to awbType.value!!.ifEmpty { null },
|
||||||
"businessType" to businessType.value!!.ifEmpty { null },
|
"businessType" to businessType.value!!.ifEmpty { null },
|
||||||
"goods" to goodsCn.value!!.ifEmpty { null }
|
"goods" to goodsCn.value!!.ifEmpty { null }
|
||||||
@@ -113,7 +139,7 @@ class IntImpQueryViewModel : BasePageViewModel(), IOnItemClickListener {
|
|||||||
"wbNo" to waybillNo.value!!.ifEmpty { null },
|
"wbNo" to waybillNo.value!!.ifEmpty { null },
|
||||||
"spCode" to spCode.value!!.ifEmpty { null },
|
"spCode" to spCode.value!!.ifEmpty { null },
|
||||||
"fno" to flightNo.value!!.ifEmpty { null },
|
"fno" to flightNo.value!!.ifEmpty { null },
|
||||||
"dest" to dest.value!!.ifEmpty { null },
|
"origin" to origin.value!!.ifEmpty { null },
|
||||||
"awbType" to awbType.value!!.ifEmpty { null },
|
"awbType" to awbType.value!!.ifEmpty { null },
|
||||||
"businessType" to businessType.value!!.ifEmpty { null },
|
"businessType" to businessType.value!!.ifEmpty { null },
|
||||||
"goods" to goodsCn.value!!.ifEmpty { null }
|
"goods" to goodsCn.value!!.ifEmpty { null }
|
||||||
@@ -166,6 +192,16 @@ class IntImpQueryViewModel : BasePageViewModel(), IOnItemClickListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun initSpecialCodeList() {
|
||||||
|
DictUtils.getSpecialCodeList(
|
||||||
|
flag = 1,
|
||||||
|
ieFlag = "",
|
||||||
|
parentcode = ""
|
||||||
|
) {
|
||||||
|
spCodeList.value = it
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun initAgentList() {
|
fun initAgentList() {
|
||||||
launchCollect({
|
launchCollect({
|
||||||
NetApply.api.getIntImpAgentList()
|
NetApply.api.getIntImpAgentList()
|
||||||
|
|||||||
@@ -182,6 +182,18 @@ class IntImpTallyViewModel : BasePageViewModel() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 校验所选单据状态是否为 01(已申报)
|
||||||
|
val invalidMaWb = selectedMaWb.firstOrNull { it.status != "01" }
|
||||||
|
if (invalidMaWb != null) {
|
||||||
|
showToast("运单 ${invalidMaWb.getWaybillNo()} 理货未申报,不允许删除理货")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
val invalidHaWb = selectedHaWb.firstOrNull { it.status != "01" }
|
||||||
|
if (invalidHaWb != null) {
|
||||||
|
showToast("运单 ${invalidHaWb.getWaybillNo()} 理货未申报,不允许删除理货")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// 从接口获取删除原因列表
|
// 从接口获取删除原因列表
|
||||||
launchLoadingCollect({ NetApply.api.getDelReasonList() }) {
|
launchLoadingCollect({ NetApply.api.getDelReasonList() }) {
|
||||||
onSuccess = { result ->
|
onSuccess = { result ->
|
||||||
|
|||||||
@@ -79,13 +79,13 @@
|
|||||||
android:layout_weight="1" />
|
android:layout_weight="1" />
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
enable="@{viewModel.pageType == DetailsPageType.Add}"
|
enable="@{false}"
|
||||||
hint='@{"请输入航程"}'
|
hint='@{"自动填充"}'
|
||||||
required="@{false}"
|
required="@{false}"
|
||||||
title='@{"航 程"}'
|
title='@{"航 程"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@={viewModel.range}'
|
value='@{viewModel.range}'
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="15dp"
|
android:layout_marginStart="15dp"
|
||||||
@@ -103,7 +103,7 @@
|
|||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
enable="@{viewModel.pageType == DetailsPageType.Add}"
|
enable="@{viewModel.pageType == DetailsPageType.Add}"
|
||||||
hint='@{"请输入运单号"}'
|
hint='@{"请输入运单号"}'
|
||||||
required="@{false}"
|
required="@{true}"
|
||||||
title='@{"运 单 号"}'
|
title='@{"运 单 号"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
@@ -115,7 +115,7 @@
|
|||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
hint='@{"请选择代理"}'
|
hint='@{"请选择代理"}'
|
||||||
list="@{viewModel.agentList}"
|
list="@{viewModel.agentList}"
|
||||||
required="@{false}"
|
required="@{true}"
|
||||||
title='@{"代 理"}'
|
title='@{"代 理"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.SPINNER}"
|
type="@{DataLayoutType.SPINNER}"
|
||||||
@@ -149,7 +149,7 @@
|
|||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
hint='@{"请输入始发站"}'
|
hint='@{"请输入始发站"}'
|
||||||
required="@{false}"
|
required="@{true}"
|
||||||
title='@{"始 发 站"}'
|
title='@{"始 发 站"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
@@ -160,7 +160,7 @@
|
|||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
hint='@{"请输入目的站"}'
|
hint='@{"请输入目的站"}'
|
||||||
required="@{false}"
|
required="@{true}"
|
||||||
title='@{"目 的 站"}'
|
title='@{"目 的 站"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
@@ -173,7 +173,7 @@
|
|||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
hint='@{"请选择运单类型"}'
|
hint='@{"请选择运单类型"}'
|
||||||
list="@{viewModel.waybillTypeList}"
|
list="@{viewModel.waybillTypeList}"
|
||||||
required="@{false}"
|
required="@{true}"
|
||||||
title='@{"运单类型"}'
|
title='@{"运单类型"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.SPINNER}"
|
type="@{DataLayoutType.SPINNER}"
|
||||||
@@ -193,8 +193,9 @@
|
|||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:id="@+id/waybillNumInput"
|
||||||
hint='@{"请输入总件数"}'
|
hint='@{"请输入总件数"}'
|
||||||
required="@{false}"
|
required="@{true}"
|
||||||
title='@{"总 件 数"}'
|
title='@{"总 件 数"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
@@ -204,6 +205,7 @@
|
|||||||
android:layout_weight="1" />
|
android:layout_weight="1" />
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:id="@+id/actualNumInput"
|
||||||
hint='@{"请输入实到件数"}'
|
hint='@{"请输入实到件数"}'
|
||||||
required="@{false}"
|
required="@{false}"
|
||||||
title='@{"实到件数"}'
|
title='@{"实到件数"}'
|
||||||
@@ -216,8 +218,9 @@
|
|||||||
android:layout_weight="1" />
|
android:layout_weight="1" />
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:id="@+id/actualWeightInput"
|
||||||
hint='@{"请输入实到重量"}'
|
hint='@{"请输入实到重量"}'
|
||||||
required="@{false}"
|
required="@{true}"
|
||||||
title='@{"实到重量"}'
|
title='@{"实到重量"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
@@ -237,6 +240,7 @@
|
|||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:id="@+id/billingWeightInput"
|
||||||
hint='@{"请输入计费重量"}'
|
hint='@{"请输入计费重量"}'
|
||||||
required="@{false}"
|
required="@{false}"
|
||||||
title='@{"计费重量"}'
|
title='@{"计费重量"}'
|
||||||
@@ -261,7 +265,7 @@
|
|||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
hint='@{"请输入品名(英)"}'
|
hint='@{"请输入品名(英)"}'
|
||||||
required="@{false}"
|
required="@{true}"
|
||||||
title='@{"品名(英)"}'
|
title='@{"品名(英)"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
@@ -295,7 +299,7 @@
|
|||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
hint='@{"请选择业务类型"}'
|
hint='@{"请选择业务类型"}'
|
||||||
list="@{viewModel.businessTypeList}"
|
list="@{viewModel.businessTypeList}"
|
||||||
required="@{false}"
|
required="@{true}"
|
||||||
title='@{"业务类型"}'
|
title='@{"业务类型"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.SPINNER}"
|
type="@{DataLayoutType.SPINNER}"
|
||||||
|
|||||||
@@ -61,10 +61,10 @@
|
|||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"特码"}'
|
title='@{"航班信息"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{viewModel.dataBean.spCode}'
|
value='@{viewModel.dataBean.getFlightSplit()}'
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="1" />
|
||||||
|
|||||||
@@ -59,6 +59,7 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
enable="@{true}"
|
enable="@{true}"
|
||||||
hint='@{"请输入名称"}'
|
hint='@{"请输入名称"}'
|
||||||
|
required="@{true}"
|
||||||
title='@{"名称"}'
|
title='@{"名称"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
@@ -71,6 +72,7 @@
|
|||||||
enable="@{true}"
|
enable="@{true}"
|
||||||
hint='@{"请选择国家代码"}'
|
hint='@{"请选择国家代码"}'
|
||||||
list="@{viewModel.countryCodeList}"
|
list="@{viewModel.countryCodeList}"
|
||||||
|
required="@{true}"
|
||||||
title='@{"国家代码"}'
|
title='@{"国家代码"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.SPINNER}"
|
type="@{DataLayoutType.SPINNER}"
|
||||||
@@ -83,6 +85,7 @@
|
|||||||
enable="@{true}"
|
enable="@{true}"
|
||||||
hint='@{"请选择通讯方式"}'
|
hint='@{"请选择通讯方式"}'
|
||||||
list="@{viewModel.comTypeList}"
|
list="@{viewModel.comTypeList}"
|
||||||
|
required="@{true}"
|
||||||
title='@{"通讯方式"}'
|
title='@{"通讯方式"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.SPINNER}"
|
type="@{DataLayoutType.SPINNER}"
|
||||||
@@ -103,6 +106,7 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
enable="@{true}"
|
enable="@{true}"
|
||||||
hint='@{"请输入联系号码"}'
|
hint='@{"请输入联系号码"}'
|
||||||
|
required="@{true}"
|
||||||
title='@{"联系号码"}'
|
title='@{"联系号码"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
@@ -154,6 +158,7 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
enable="@{true}"
|
enable="@{true}"
|
||||||
hint='@{"请输入名称"}'
|
hint='@{"请输入名称"}'
|
||||||
|
required="@{true}"
|
||||||
title='@{"名称"}'
|
title='@{"名称"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
@@ -166,6 +171,7 @@
|
|||||||
enable="@{true}"
|
enable="@{true}"
|
||||||
hint='@{"请选择国家代码"}'
|
hint='@{"请选择国家代码"}'
|
||||||
list="@{viewModel.countryCodeList}"
|
list="@{viewModel.countryCodeList}"
|
||||||
|
required="@{true}"
|
||||||
title='@{"国家代码"}'
|
title='@{"国家代码"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.SPINNER}"
|
type="@{DataLayoutType.SPINNER}"
|
||||||
@@ -178,6 +184,7 @@
|
|||||||
enable="@{true}"
|
enable="@{true}"
|
||||||
hint='@{"请选择通讯方式"}'
|
hint='@{"请选择通讯方式"}'
|
||||||
list="@{viewModel.comTypeList}"
|
list="@{viewModel.comTypeList}"
|
||||||
|
required="@{true}"
|
||||||
title='@{"通讯方式"}'
|
title='@{"通讯方式"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.SPINNER}"
|
type="@{DataLayoutType.SPINNER}"
|
||||||
@@ -198,6 +205,7 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
enable="@{true}"
|
enable="@{true}"
|
||||||
hint='@{"请输入联系号码"}'
|
hint='@{"请输入联系号码"}'
|
||||||
|
required="@{true}"
|
||||||
title='@{"联系号码"}'
|
title='@{"联系号码"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
|||||||
@@ -99,10 +99,10 @@
|
|||||||
android:src="@drawable/img_search" />
|
android:src="@drawable/img_search" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="36dp"
|
android:layout_width="40dp"
|
||||||
android:layout_height="36dp"
|
android:layout_height="40dp"
|
||||||
android:layout_marginLeft="16dp"
|
android:layout_marginLeft="16dp"
|
||||||
android:padding="4dp"
|
android:onClick="@{()-> viewModel.addClick()}"
|
||||||
android:src="@drawable/img_add" />
|
android:src="@drawable/img_add" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
|
|||||||
@@ -0,0 +1,363 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<data>
|
||||||
|
|
||||||
|
<import type="com.lukouguoji.module_base.ui.weight.data.layout.DataLayoutType" />
|
||||||
|
|
||||||
|
<import type="com.lukouguoji.module_base.common.DetailsPageType" />
|
||||||
|
|
||||||
|
<variable
|
||||||
|
name="viewModel"
|
||||||
|
type="com.lukouguoji.gjj.viewModel.IntImpAccidentVisaEditViewModel" />
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="@color/color_f2"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<include layout="@layout/title_tool_bar" />
|
||||||
|
|
||||||
|
<androidx.core.widget.NestedScrollView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:layout_weight="1">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:padding="15dp">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@drawable/bg_white_radius_8"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:padding="15dp">
|
||||||
|
|
||||||
|
<!-- Row 1: 航班日期 | 航班号 -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
enable="@{true}"
|
||||||
|
hint='@{"请选择航班日期"}'
|
||||||
|
setRefreshCallBack="@{viewModel::onFlightDateInputComplete}"
|
||||||
|
title='@{"航班日期"}'
|
||||||
|
titleLength="@{6}"
|
||||||
|
type="@{DataLayoutType.DATE}"
|
||||||
|
value='@={viewModel.dataBean.fdate}' />
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
enable="@{true}"
|
||||||
|
hint='@{"请输入航班号"}'
|
||||||
|
setRefreshCallBack="@{viewModel::onFlightNoInputComplete}"
|
||||||
|
title='@{"航班号"}'
|
||||||
|
titleLength="@{6}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@={viewModel.dataBean.fno}' />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Row 2: 始发站 | 目的站 -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
enable="@{false}"
|
||||||
|
title='@{"始发站"}'
|
||||||
|
titleLength="@{6}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@{viewModel.dataBean.dep}' />
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
enable="@{false}"
|
||||||
|
title='@{"目的站"}'
|
||||||
|
titleLength="@{6}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@{viewModel.dataBean.dest}' />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Row 3: 运单号 | 不正常件数 -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
enable="@{true}"
|
||||||
|
hint='@{"请输入运单号"}'
|
||||||
|
title='@{"运单号"}'
|
||||||
|
titleLength="@{6}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@={viewModel.dataBean.wbNo}' />
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
enable="@{true}"
|
||||||
|
hint='@{"请输入不正常件数"}'
|
||||||
|
title='@{"不正常件数"}'
|
||||||
|
titleLength="@{6}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@={viewModel.dataBean.dpc}' />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Row 4: 运单总件数 | 运单总重量 -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
enable="@{true}"
|
||||||
|
hint='@{"请输入运单总件数"}'
|
||||||
|
title='@{"运单总件数"}'
|
||||||
|
titleLength="@{6}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@={viewModel.dataBean.pc}' />
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
enable="@{true}"
|
||||||
|
hint='@{"请输入运单总重量"}'
|
||||||
|
title='@{"运单总重量"}'
|
||||||
|
titleLength="@{6}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@={viewModel.dataBean.weight}' />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Row 5: 复称重量 | 品名 -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
enable="@{true}"
|
||||||
|
hint='@{"请输入复称重量"}'
|
||||||
|
title='@{"复称重量"}'
|
||||||
|
titleLength="@{6}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@={viewModel.dataBean.reweight}' />
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
enable="@{true}"
|
||||||
|
hint='@{"请输入品名"}'
|
||||||
|
title='@{"品名"}'
|
||||||
|
titleLength="@{6}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@={viewModel.dataBean.goods}' />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Row 6: 外包装 | 包装破损情况 -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
hint='@{"请选择外包装"}'
|
||||||
|
list="@{viewModel.outerPackageList}"
|
||||||
|
title='@{"外包装"}'
|
||||||
|
titleLength="@{6}"
|
||||||
|
type="@{DataLayoutType.SPINNER}"
|
||||||
|
value='@={viewModel.dataBean.opacking}' />
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
hint='@{"请选择破损情况"}'
|
||||||
|
list="@{viewModel.damageTypeList}"
|
||||||
|
title='@{"包装破损情况"}'
|
||||||
|
titleLength="@{6}"
|
||||||
|
type="@{DataLayoutType.SPINNER}"
|
||||||
|
value='@={viewModel.dataBean.damage}' />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Row 7: 内容物情况 | 不正常类型 -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
hint='@{"请选择内容物情况"}'
|
||||||
|
list="@{viewModel.contentTypeList}"
|
||||||
|
title='@{"内容物情况"}'
|
||||||
|
titleLength="@{6}"
|
||||||
|
type="@{DataLayoutType.SPINNER}"
|
||||||
|
value='@={viewModel.dataBean.condition}' />
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
hint='@{"请选择不正常类型"}'
|
||||||
|
list="@{viewModel.unusualTypeList}"
|
||||||
|
title='@{"不正常类型"}'
|
||||||
|
titleLength="@{6}"
|
||||||
|
type="@{DataLayoutType.SPINNER}"
|
||||||
|
value='@={viewModel.dataBean.problem}' />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Row 8: 发现时间 | 图片是否留底 -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
enable="@{true}"
|
||||||
|
hint='@{"请选择发现时间"}'
|
||||||
|
title='@{"发现时间"}'
|
||||||
|
titleLength="@{6}"
|
||||||
|
type="@{DataLayoutType.DATE}"
|
||||||
|
value='@={viewModel.dataBean.seachDate}' />
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
hint='@{"请选择"}'
|
||||||
|
list="@{viewModel.photoList}"
|
||||||
|
title='@{"图片是否留底"}'
|
||||||
|
titleLength="@{6}"
|
||||||
|
type="@{DataLayoutType.SPINNER}"
|
||||||
|
value='@={viewModel.dataBean.photo}' />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Row 9: 备注(整行) -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
enable="@{true}"
|
||||||
|
hint='@{"请输入备注"}'
|
||||||
|
inputHeight="@{80}"
|
||||||
|
title='@{"备注"}'
|
||||||
|
titleLength="@{6}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@={viewModel.dataBean.remarks}' />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- 上传图像区域 -->
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="15dp"
|
||||||
|
android:text="上传图像"
|
||||||
|
android:textColor="@color/text_normal"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/rv"
|
||||||
|
itemLayoutId="@{viewModel.itemLayoutId}"
|
||||||
|
viewHolder="@{viewModel.itemViewHolder}"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
|
||||||
|
app:spanCount="4"
|
||||||
|
tools:listitem="@layout/item_image_select" />
|
||||||
|
|
||||||
|
<!-- 底部按钮 -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="24dp"
|
||||||
|
android:layout_marginBottom="15dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
style="@style/tv_bottom_btn"
|
||||||
|
android:layout_width="120dp"
|
||||||
|
android:onClick="@{()-> viewModel.onCancelClick()}"
|
||||||
|
android:text="取消" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
style="@style/tv_bottom_btn"
|
||||||
|
android:layout_width="120dp"
|
||||||
|
android:layout_marginLeft="20dp"
|
||||||
|
android:onClick="@{()-> viewModel.onSaveClick()}"
|
||||||
|
android:text="保存" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</androidx.core.widget.NestedScrollView>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</layout>
|
||||||
@@ -109,11 +109,10 @@
|
|||||||
|
|
||||||
<!-- 新增按钮 -->
|
<!-- 新增按钮 -->
|
||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="36dp"
|
android:layout_width="40dp"
|
||||||
android:layout_height="36dp"
|
android:layout_height="40dp"
|
||||||
android:layout_marginLeft="16dp"
|
android:layout_marginLeft="16dp"
|
||||||
android:onClick="@{()-> viewModel.onAddClick()}"
|
android:onClick="@{()-> viewModel.onAddClick()}"
|
||||||
android:padding="4dp"
|
|
||||||
android:src="@drawable/img_add" />
|
android:src="@drawable/img_add" />
|
||||||
|
|
||||||
<!-- 删除按钮 -->
|
<!-- 删除按钮 -->
|
||||||
|
|||||||
@@ -72,7 +72,8 @@
|
|||||||
title='@{"主分校验"}'
|
title='@{"主分校验"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{viewModel.mainSubCheck}' />
|
value='@{viewModel.mainSubCheck}'
|
||||||
|
valueTextColor="@{viewModel.isCheckValid ? @color/text_green : @color/red}" />
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
@@ -103,6 +104,7 @@
|
|||||||
enable="@{true}"
|
enable="@{true}"
|
||||||
hint='@{"请输入件数"}'
|
hint='@{"请输入件数"}'
|
||||||
required="@{false}"
|
required="@{false}"
|
||||||
|
setRefreshCallBack="@{viewModel::onPcInputComplete}"
|
||||||
title='@{"件 数"}'
|
title='@{"件 数"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
@@ -116,6 +118,7 @@
|
|||||||
enable="@{true}"
|
enable="@{true}"
|
||||||
hint='@{"请输入重量"}'
|
hint='@{"请输入重量"}'
|
||||||
required="@{false}"
|
required="@{false}"
|
||||||
|
setRefreshCallBack="@{viewModel::onWeightInputComplete}"
|
||||||
title='@{"重 量"}'
|
title='@{"重 量"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"运 单 号"}'
|
title='@{"运 单 号"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{viewModel.dataBean.wbNo}' />
|
value='@{viewModel.dataBean.wbNo}' />
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"代 理 人"}'
|
title='@{"代 理 人"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{viewModel.dataBean.agentCode}' />
|
value='@{viewModel.dataBean.agentCode}' />
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"特 码"}'
|
title='@{"特 码"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{viewModel.dataBean.spCode}' />
|
value='@{viewModel.dataBean.spCode}' />
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"提货编号"}'
|
title='@{"提货编号"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{viewModel.dataBean.pkId}' />
|
value='@{viewModel.dataBean.pkId}' />
|
||||||
|
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"件数"}'
|
title='@{"件数"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{String.valueOf(viewModel.dataBean.pc)}' />
|
value='@{String.valueOf(viewModel.dataBean.pc)}' />
|
||||||
|
|
||||||
@@ -109,7 +109,7 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"重量"}'
|
title='@{"重量"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{String.valueOf(viewModel.dataBean.weight)}' />
|
value='@{String.valueOf(viewModel.dataBean.weight)}' />
|
||||||
|
|
||||||
@@ -128,7 +128,7 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"计费重量"}'
|
title='@{"计费重量"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{String.valueOf(viewModel.dataBean.cashWeight)}' />
|
value='@{String.valueOf(viewModel.dataBean.cashWeight)}' />
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@
|
|||||||
enable="@{true}"
|
enable="@{true}"
|
||||||
hint='@{"请输入信息费"}'
|
hint='@{"请输入信息费"}'
|
||||||
title='@{"信息费"}'
|
title='@{"信息费"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@={viewModel.tranChargeStr}' />
|
value='@={viewModel.tranChargeStr}' />
|
||||||
|
|
||||||
@@ -149,13 +149,13 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"服务费"}'
|
title='@{"服务费"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{String.valueOf(viewModel.dataBean.optCharge)}' />
|
value='@{String.valueOf(viewModel.dataBean.optCharge)}' />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<!-- 第4行:仓储费、抽单费、冷藏费(可编辑) -->
|
<!-- 第4行:仓储费、文件处理费、叉车费(可编辑) -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
enable="@{true}"
|
enable="@{true}"
|
||||||
hint='@{"请输入仓储费"}'
|
hint='@{"请输入仓储费"}'
|
||||||
title='@{"仓储费"}'
|
title='@{"仓储费"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@={viewModel.whsChargeStr}' />
|
value='@={viewModel.whsChargeStr}' />
|
||||||
|
|
||||||
@@ -178,9 +178,9 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
enable="@{true}"
|
enable="@{true}"
|
||||||
hint='@{"请输入抽单费"}'
|
hint='@{"请输入文件处理费"}'
|
||||||
title='@{"抽单费"}'
|
title='@{"文件处理费"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@={viewModel.drawBillChargeStr}' />
|
value='@={viewModel.drawBillChargeStr}' />
|
||||||
|
|
||||||
@@ -189,32 +189,21 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
enable="@{true}"
|
enable="@{true}"
|
||||||
hint='@{"请输入冷藏费"}'
|
hint='@{"请输入叉车费"}'
|
||||||
title='@{"冷藏费"}'
|
title='@{"叉车费"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@={viewModel.efrChargeStr}' />
|
value='@={viewModel.svlChargeStr}' />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<!-- 第5行:铲车费、理货费(可编辑)、总金额(只读) -->
|
<!-- 第5行:理货费、精密仪器处理费、活体动物处理费(可编辑) -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="10dp"
|
android:layout_marginTop="10dp"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1"
|
|
||||||
enable="@{true}"
|
|
||||||
hint='@{"请输入铲车费"}'
|
|
||||||
title='@{"铲车费"}'
|
|
||||||
titleLength="@{5}"
|
|
||||||
type="@{DataLayoutType.INPUT}"
|
|
||||||
value='@={viewModel.svlChargeStr}' />
|
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@@ -222,7 +211,7 @@
|
|||||||
enable="@{true}"
|
enable="@{true}"
|
||||||
hint='@{"请输入理货费"}'
|
hint='@{"请输入理货费"}'
|
||||||
title='@{"理货费"}'
|
title='@{"理货费"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@={viewModel.tallyChargeStr}' />
|
value='@={viewModel.tallyChargeStr}' />
|
||||||
|
|
||||||
@@ -230,11 +219,64 @@
|
|||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{true}"
|
||||||
title='@{"总金额"}'
|
hint='@{"请输入精密仪器处理费"}'
|
||||||
titleLength="@{5}"
|
title='@{"精密仪器处理费"}'
|
||||||
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{String.valueOf(viewModel.dataBean.amount)}' />
|
value='@={viewModel.pipFeeStr}' />
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
enable="@{true}"
|
||||||
|
hint='@{"请输入活体动物处理费"}'
|
||||||
|
title='@{"活体动物处理费"}'
|
||||||
|
titleLength="@{7}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@={viewModel.lapFeeStr}' />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- 第6行:总费用(只读,实时计算) -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
enable="@{false}"
|
||||||
|
title='@{"总费用"}'
|
||||||
|
titleLength="@{7}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@{viewModel.totalAmountStr}' />
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:visibility="invisible"
|
||||||
|
enable="@{false}"
|
||||||
|
title='@{""}'
|
||||||
|
titleLength="@{7}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@{""}' />
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:visibility="invisible"
|
||||||
|
enable="@{false}"
|
||||||
|
title='@{""}'
|
||||||
|
titleLength="@{7}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@{""}' />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -41,34 +41,34 @@
|
|||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"运单号"}'
|
title='@{"运单号"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{viewModel.dataBean.wbNo}'
|
value='@{viewModel.dataBean.wbNo}' />
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1" />
|
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"代理人"}'
|
title='@{"代理人"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{viewModel.dataBean.agentCode}'
|
value='@{viewModel.dataBean.agentCode}' />
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1" />
|
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
enable="@{false}"
|
|
||||||
title='@{"特码"}'
|
|
||||||
titleLength="@{5}"
|
|
||||||
type="@{DataLayoutType.INPUT}"
|
|
||||||
value='@{viewModel.dataBean.spCode}'
|
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="1"
|
||||||
|
enable="@{false}"
|
||||||
|
title='@{"特码"}'
|
||||||
|
titleLength="@{7}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@{viewModel.dataBean.spCode}' />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
@@ -80,34 +80,34 @@
|
|||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"提货编号"}'
|
title='@{"提货编号"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{viewModel.dataBean.pkId}'
|
value='@{viewModel.dataBean.pkId}' />
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1" />
|
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"件数"}'
|
title='@{"件数"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{String.valueOf(viewModel.dataBean.pc)}'
|
value='@{String.valueOf(viewModel.dataBean.pc)}' />
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1" />
|
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
enable="@{false}"
|
|
||||||
title='@{"重量"}'
|
|
||||||
titleLength="@{5}"
|
|
||||||
type="@{DataLayoutType.INPUT}"
|
|
||||||
value='@{String.valueOf(viewModel.dataBean.weight)}'
|
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="1"
|
||||||
|
enable="@{false}"
|
||||||
|
title='@{"重量"}'
|
||||||
|
titleLength="@{7}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@{String.valueOf(viewModel.dataBean.weight)}' />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
@@ -119,38 +119,38 @@
|
|||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"计费重量"}'
|
title='@{"计费重量"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{String.valueOf(viewModel.dataBean.cashWeight)}'
|
value='@{String.valueOf(viewModel.dataBean.cashWeight)}' />
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1" />
|
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"信息费"}'
|
title='@{"信息费"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{String.valueOf(viewModel.dataBean.tranCharge)}'
|
value='@{String.valueOf(viewModel.dataBean.tranCharge)}' />
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1" />
|
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"服务费"}'
|
title='@{"服务费"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{String.valueOf(viewModel.dataBean.optCharge)}'
|
value='@{String.valueOf(viewModel.dataBean.optCharge)}' />
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<!-- 第4行:仓储费、抽单费、冷藏费 -->
|
<!-- 第4行:仓储费、文件处理费、叉车费 -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@@ -158,38 +158,38 @@
|
|||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"仓储费"}'
|
title='@{"仓储费"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{String.valueOf(viewModel.dataBean.whsCharge)}'
|
value='@{String.valueOf(viewModel.dataBean.whsCharge)}' />
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1" />
|
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
enable="@{false}"
|
|
||||||
title='@{"抽单费"}'
|
|
||||||
titleLength="@{5}"
|
|
||||||
type="@{DataLayoutType.INPUT}"
|
|
||||||
value='@{String.valueOf(viewModel.dataBean.drawBillCharge)}'
|
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="1"
|
||||||
|
enable="@{false}"
|
||||||
|
title='@{"文件处理费"}'
|
||||||
|
titleLength="@{7}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@{String.valueOf(viewModel.dataBean.drawBillCharge)}' />
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
enable="@{false}"
|
|
||||||
title='@{"冷藏费"}'
|
|
||||||
titleLength="@{5}"
|
|
||||||
type="@{DataLayoutType.INPUT}"
|
|
||||||
value='@{String.valueOf(viewModel.dataBean.efrCharge)}'
|
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="1"
|
||||||
|
enable="@{false}"
|
||||||
|
title='@{"叉车费"}'
|
||||||
|
titleLength="@{7}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@{String.valueOf(viewModel.dataBean.svlCharge)}' />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<!-- 第5行:铲车费、理货费、总金额 -->
|
<!-- 第5行:理货费、精密仪器处理费、活体动物处理费 -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@@ -197,38 +197,38 @@
|
|||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
enable="@{false}"
|
|
||||||
title='@{"铲车费"}'
|
|
||||||
titleLength="@{5}"
|
|
||||||
type="@{DataLayoutType.INPUT}"
|
|
||||||
value='@{String.valueOf(viewModel.dataBean.svlCharge)}'
|
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="1"
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"理货费"}'
|
title='@{"理货费"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{String.valueOf(viewModel.dataBean.tallyCharge)}'
|
value='@{String.valueOf(viewModel.dataBean.tallyCharge)}' />
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1" />
|
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
enable="@{false}"
|
|
||||||
title='@{"总金额"}'
|
|
||||||
titleLength="@{5}"
|
|
||||||
type="@{DataLayoutType.INPUT}"
|
|
||||||
value='@{String.valueOf(viewModel.dataBean.amount)}'
|
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="1"
|
||||||
|
enable="@{false}"
|
||||||
|
title='@{"精密仪器处理费"}'
|
||||||
|
titleLength="@{7}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@{String.valueOf(viewModel.dataBean.pipFee)}' />
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
enable="@{false}"
|
||||||
|
title='@{"活体动物处理费"}'
|
||||||
|
titleLength="@{7}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@{String.valueOf(viewModel.dataBean.lapFee)}' />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<!-- 第6行:提取时间、办理人、出库时间 -->
|
<!-- 第6行:总费用、提取时间、办理人 -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@@ -236,34 +236,75 @@
|
|||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
enable="@{false}"
|
||||||
|
title='@{"总费用"}'
|
||||||
|
titleLength="@{7}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@{String.valueOf(viewModel.dataBean.amount)}' />
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"提取时间"}'
|
title='@{"提取时间"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{viewModel.dataBean.chargeTime}'
|
value='@{viewModel.dataBean.chargeTime}' />
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1" />
|
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"办理人"}'
|
title='@{"办理人"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{7}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{viewModel.dataBean.chargeName}'
|
value='@{viewModel.dataBean.chargeName}' />
|
||||||
android:layout_width="0dp"
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- 第7行:出库时间 -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_marginTop="10dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
enable="@{false}"
|
|
||||||
title='@{"出库时间"}'
|
|
||||||
titleLength="@{5}"
|
|
||||||
type="@{DataLayoutType.INPUT}"
|
|
||||||
value='@{viewModel.dataBean.dlvTime}'
|
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="1"
|
||||||
|
enable="@{false}"
|
||||||
|
title='@{"出库时间"}'
|
||||||
|
titleLength="@{7}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@{viewModel.dataBean.dlvTime}' />
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:visibility="invisible"
|
||||||
|
enable="@{false}"
|
||||||
|
title='@{""}'
|
||||||
|
titleLength="@{7}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@{""}' />
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:visibility="invisible"
|
||||||
|
enable="@{false}"
|
||||||
|
title='@{""}'
|
||||||
|
titleLength="@{7}"
|
||||||
|
type="@{DataLayoutType.INPUT}"
|
||||||
|
value='@{""}' />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -17,9 +17,21 @@
|
|||||||
android:background="@color/color_f2"
|
android:background="@color/color_f2"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<!-- 标题栏 -->
|
<!-- 标题栏(始终在最上层,不被遮挡) -->
|
||||||
<include layout="@layout/title_tool_bar" />
|
<include layout="@layout/title_tool_bar" />
|
||||||
|
|
||||||
|
<!-- 内容区域(FrameLayout 包裹,筛选面板和遮罩只在此区域内) -->
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:layout_weight="1">
|
||||||
|
|
||||||
|
<!-- 原有内容 -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
<!-- 搜索区域 -->
|
<!-- 搜索区域 -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@@ -180,4 +192,29 @@
|
|||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- 遮罩层(只覆盖内容区域) -->
|
||||||
|
<View
|
||||||
|
android:id="@+id/filter_overlay"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="#80000000"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:onClick="@{()-> viewModel.closeFilter()}"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
|
<!-- 筛选面板(从右侧滑入,只在内容区域内) -->
|
||||||
|
<include
|
||||||
|
android:id="@+id/filter_panel"
|
||||||
|
layout="@layout/layout_int_imp_query_filter"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_gravity="end"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:viewModel="@{viewModel}" />
|
||||||
|
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
</layout>
|
</layout>
|
||||||
|
|||||||
@@ -39,11 +39,11 @@
|
|||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:padding="15dp">
|
android:padding="15dp">
|
||||||
|
|
||||||
<!-- 段落标题:收货人信息 -->
|
<!-- 段落标题:基础信息 -->
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="收货人信息"
|
android:text="基础信息"
|
||||||
android:textColor="@color/text_normal"
|
android:textColor="@color/text_normal"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />
|
||||||
@@ -77,10 +77,10 @@
|
|||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"特码"}'
|
title='@{"航班信息"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{viewModel.dataBean.spCode}'
|
value='@{viewModel.dataBean.getFlightSplit()}'
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="1" />
|
||||||
@@ -312,7 +312,7 @@
|
|||||||
title='@{"放行模式"}'
|
title='@{"放行模式"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{viewModel.dataBean.releaseMode}'
|
value='@{viewModel.dataBean.relMode}'
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="1" />
|
||||||
@@ -322,7 +322,7 @@
|
|||||||
title='@{"放行时间"}'
|
title='@{"放行时间"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{viewModel.dataBean.releaseTime}'
|
value='@{viewModel.dataBean.perDate}'
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="1" />
|
||||||
@@ -332,17 +332,17 @@
|
|||||||
title='@{"指令类型"}'
|
title='@{"指令类型"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{viewModel.dataBean.instructionType}'
|
value='@{viewModel.dataBean.comType}'
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="1" />
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
enable="@{false}"
|
enable="@{false}"
|
||||||
title='@{"备注"}'
|
title='@{"放行备注"}'
|
||||||
titleLength="@{5}"
|
titleLength="@{5}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@{viewModel.dataBean.remark}'
|
value='@{viewModel.dataBean.relRemark}'
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="1" />
|
||||||
|
|||||||
@@ -18,14 +18,13 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="@drawable/bg_white_radius_bottom_8"
|
android:background="@drawable/bg_white_radius_bottom_8"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical">
|
||||||
android:paddingEnd="8dp">
|
|
||||||
|
|
||||||
<!-- 表头 -->
|
<!-- 表头 -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="40dp"
|
android:layout_height="40dp"
|
||||||
android:background="@color/color_f2"
|
android:background="@color/color_f5"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:paddingHorizontal="10dp">
|
android:paddingHorizontal="10dp">
|
||||||
|
|||||||
@@ -18,14 +18,13 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="@drawable/bg_white_radius_bottom_8"
|
android:background="@drawable/bg_white_radius_bottom_8"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical">
|
||||||
android:paddingEnd="8dp">
|
|
||||||
|
|
||||||
<!-- 表头 -->
|
<!-- 表头 -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="40dp"
|
android:layout_height="40dp"
|
||||||
android:background="@color/color_f2"
|
android:background="@color/color_f5"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:paddingHorizontal="10dp">
|
android:paddingHorizontal="10dp">
|
||||||
|
|||||||
@@ -174,7 +174,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="10dp">
|
android:layout_marginTop="10dp">
|
||||||
|
|
||||||
<!-- 特码 -->
|
<!-- 航班信息 -->
|
||||||
<androidx.appcompat.widget.LinearLayoutCompat
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@@ -184,13 +184,13 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
completeSpace="@{4}"
|
completeSpace="@{5}"
|
||||||
android:text="特码:" />
|
android:text="航班信息:" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@{manifest.spCode ?? ``}" />
|
android:text="@{manifest.getFlightSplit()}" />
|
||||||
|
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|||||||
@@ -27,8 +27,8 @@
|
|||||||
android:layout_height="20dp"
|
android:layout_height="20dp"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_weight="0.5"
|
android:layout_weight="0.5"
|
||||||
loadImage="@{bean.checked.get() ? @drawable/radiobtn_checked_gray : @drawable/radiobtn_unchecked_gray}"
|
loadImage="@{bean.checked.get() ? @drawable/radiobtn_checked_style : @drawable/radiobtn_unchecked_style}"
|
||||||
android:src="@drawable/radiobtn_unchecked_gray" />
|
android:src="@drawable/radiobtn_unchecked_style" />
|
||||||
|
|
||||||
<!-- 分单号 -->
|
<!-- 分单号 -->
|
||||||
<TextView
|
<TextView
|
||||||
|
|||||||
@@ -12,12 +12,25 @@
|
|||||||
type="Integer" />
|
type="Integer" />
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<androidx.appcompat.widget.LinearLayoutCompat
|
<!-- 外层容器承载间距 -->
|
||||||
android:id="@+id/ll"
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="15dp"
|
android:layout_marginHorizontal="15dp"
|
||||||
android:layout_marginVertical="5dp"
|
android:layout_marginVertical="5dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<!-- 侧滑布局 -->
|
||||||
|
<com.mcxtzhang.swipemenulib.SwipeMenuLayout
|
||||||
|
android:id="@+id/swipe_menu"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<!-- 主列表项容器 -->
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:id="@+id/ll"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
android:background="@drawable/bg_item"
|
android:background="@drawable/bg_item"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
@@ -291,4 +304,23 @@
|
|||||||
|
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<!-- 侧滑菜单按钮区 -->
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<!-- 修改按钮 -->
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/btn_edit"
|
||||||
|
style="@style/tv_item_action"
|
||||||
|
android:background="@color/colorPrimary"
|
||||||
|
android:text="修改" />
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
</com.mcxtzhang.swipemenulib.SwipeMenuLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</layout>
|
</layout>
|
||||||
|
|||||||
@@ -27,8 +27,8 @@
|
|||||||
android:layout_height="20dp"
|
android:layout_height="20dp"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_weight="0.5"
|
android:layout_weight="0.5"
|
||||||
loadImage="@{bean.checked.get() ? @drawable/radiobtn_checked_gray : @drawable/radiobtn_unchecked_gray}"
|
loadImage="@{bean.checked.get() ? @drawable/radiobtn_checked_style : @drawable/radiobtn_unchecked_style}"
|
||||||
android:src="@drawable/radiobtn_unchecked_gray" />
|
android:src="@drawable/radiobtn_unchecked_style" />
|
||||||
|
|
||||||
<!-- 运单号 -->
|
<!-- 运单号 -->
|
||||||
<TextView
|
<TextView
|
||||||
|
|||||||
@@ -88,7 +88,7 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text='@{String.valueOf(bean.awbPc)}'
|
android:text='@{String.valueOf(bean.inPc)}'
|
||||||
tools:text="10" />
|
tools:text="10" />
|
||||||
|
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
@@ -109,7 +109,7 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text='@{String.valueOf(bean.awbWeight)}'
|
android:text='@{String.valueOf(bean.inWeight)}'
|
||||||
tools:text="200" />
|
tools:text="200" />
|
||||||
|
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|||||||
@@ -78,7 +78,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1.5"
|
android:layout_weight="1.5"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="@{bean.outDate != null && bean.outDate.length() >= 16 ? bean.outDate.substring(0, 16) : (bean.outDate != null && bean.outDate.length() > 0 ? bean.outDate : `--`)}"
|
android:text="@{bean.outDate != null && bean.outDate.length() >= 16 ? bean.outDate.substring(0, 16) : (bean.outDate ?? ``)}"
|
||||||
android:textColor="@android:color/black"
|
android:textColor="@android:color/black"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
|||||||
@@ -266,7 +266,7 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@{bean.opDate}"
|
android:text="@{bean.inDate}"
|
||||||
android:textSize="16sp" />
|
android:textSize="16sp" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
android:layout_height="20dp"
|
android:layout_height="20dp"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_weight="0.5"
|
android:layout_weight="0.5"
|
||||||
loadImage="@{bean.checked.get() ? @drawable/radiobtn_checked_gray : @drawable/radiobtn_unchecked_gray}"
|
loadImage="@{bean.checked.get() ? @drawable/radiobtn_checked_style : @drawable/radiobtn_unchecked_style}"
|
||||||
android:src="@drawable/radiobtn_unchecked_style" />
|
android:src="@drawable/radiobtn_unchecked_style" />
|
||||||
|
|
||||||
<!-- 库位号 -->
|
<!-- 库位号 -->
|
||||||
|
|||||||
@@ -181,7 +181,7 @@
|
|||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<!-- 特码 -->
|
<!-- 航班信息 -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@@ -192,13 +192,13 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
completeSpace="@{4}"
|
completeSpace="@{5}"
|
||||||
android:text="特码:" />
|
android:text="航班信息:" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@{bean.spCode}" />
|
android:text="@{bean.getFlightSplit()}" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
android:layout_height="20dp"
|
android:layout_height="20dp"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_weight="0.5"
|
android:layout_weight="0.5"
|
||||||
loadImage="@{bean.checked.get() ? @drawable/radiobtn_checked_gray : @drawable/radiobtn_unchecked_gray}"
|
loadImage="@{bean.checked.get() ? @drawable/radiobtn_checked_style : @drawable/radiobtn_unchecked_style}"
|
||||||
android:src="@drawable/radiobtn_unchecked_style" />
|
android:src="@drawable/radiobtn_unchecked_style" />
|
||||||
|
|
||||||
<!-- 分单号 -->
|
<!-- 分单号 -->
|
||||||
|
|||||||
@@ -5,24 +5,40 @@
|
|||||||
<import type="com.lukouguoji.module_base.ui.weight.data.layout.DataLayoutType" />
|
<import type="com.lukouguoji.module_base.ui.weight.data.layout.DataLayoutType" />
|
||||||
|
|
||||||
<variable
|
<variable
|
||||||
name="model"
|
name="viewModel"
|
||||||
type="com.lukouguoji.gjj.dialog.IntImpQueryFilterDialogModel" />
|
type="com.lukouguoji.gjj.viewModel.IntImpQueryViewModel" />
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="@color/white"
|
android:background="@color/white"
|
||||||
|
android:elevation="8dp"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<!-- 状态栏占位 -->
|
<!-- 筛选标题栏 -->
|
||||||
<View
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="25dp"
|
android:layout_height="50dp"
|
||||||
android:background="@color/white" />
|
android:gravity="center_vertical"
|
||||||
|
android:paddingHorizontal="15dp">
|
||||||
|
|
||||||
<!-- 标题栏 -->
|
<ImageView
|
||||||
<include layout="@layout/title_tool_bar" />
|
android:layout_width="15dp"
|
||||||
|
android:layout_height="15dp"
|
||||||
|
android:onClick="@{()-> viewModel.closeFilter()}"
|
||||||
|
android:src="@mipmap/left_icon"
|
||||||
|
android:tint="#666666" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="10dp"
|
||||||
|
android:text="筛选条件"
|
||||||
|
android:textColor="#666666"
|
||||||
|
android:textSize="16sp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<com.google.android.material.divider.MaterialDivider
|
<com.google.android.material.divider.MaterialDivider
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@@ -42,71 +58,72 @@
|
|||||||
|
|
||||||
<!-- 特码 -->
|
<!-- 特码 -->
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
hint='@{"请输入特码"}'
|
|
||||||
title='@{"特码"}'
|
|
||||||
titleLength="@{4}"
|
|
||||||
type="@{DataLayoutType.INPUT}"
|
|
||||||
value='@={model.spCode}'
|
|
||||||
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"
|
||||||
|
hint='@{"请选择特码"}'
|
||||||
|
list="@{viewModel.spCodeList}"
|
||||||
|
title='@{"特码"}'
|
||||||
|
titleLength="@{4}"
|
||||||
|
type="@{DataLayoutType.SPINNER}"
|
||||||
|
value='@={viewModel.spCode}' />
|
||||||
|
|
||||||
<!-- 航班号 -->
|
<!-- 航班号 -->
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="10dp"
|
||||||
hint='@{"请输入航班号"}'
|
hint='@{"请输入航班号"}'
|
||||||
title='@{"航班号"}'
|
title='@{"航班号"}'
|
||||||
titleLength="@{4}"
|
titleLength="@{4}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@={model.flightNo}'
|
value='@={viewModel.flightNo}' />
|
||||||
|
|
||||||
|
<!-- 始发港 -->
|
||||||
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
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"
|
||||||
|
hint='@{"请输入始发港"}'
|
||||||
<!-- 目的港 -->
|
title='@{"始发港"}'
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
|
||||||
hint='@{"请输入目的港"}'
|
|
||||||
title='@{"目的港"}'
|
|
||||||
titleLength="@{4}"
|
titleLength="@{4}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@={model.dest}'
|
value='@={viewModel.origin}' />
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginBottom="10dp" />
|
|
||||||
|
|
||||||
<!-- 运单类型 -->
|
<!-- 运单类型 -->
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="10dp"
|
||||||
hint='@{"请选择运单类型"}'
|
hint='@{"请选择运单类型"}'
|
||||||
list="@{model.awbTypeList}"
|
list="@{viewModel.awbTypeList}"
|
||||||
title='@{"运单类型"}'
|
title='@{"运单类型"}'
|
||||||
titleLength="@{4}"
|
titleLength="@{4}"
|
||||||
type="@{DataLayoutType.SPINNER}"
|
type="@{DataLayoutType.SPINNER}"
|
||||||
value='@={model.awbType}'
|
value='@={viewModel.awbType}' />
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginBottom="10dp" />
|
|
||||||
|
|
||||||
<!-- 业务类型 -->
|
<!-- 业务类型 -->
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="10dp"
|
||||||
hint='@{"请选择业务类型"}'
|
hint='@{"请选择业务类型"}'
|
||||||
list="@{model.businessTypeList}"
|
list="@{viewModel.businessTypeList}"
|
||||||
title='@{"业务类型"}'
|
title='@{"业务类型"}'
|
||||||
titleLength="@{4}"
|
titleLength="@{4}"
|
||||||
type="@{DataLayoutType.SPINNER}"
|
type="@{DataLayoutType.SPINNER}"
|
||||||
value='@={model.businessType}'
|
value='@={viewModel.businessType}' />
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginBottom="10dp" />
|
|
||||||
|
|
||||||
<!-- 品名(中) -->
|
<!-- 品名(中) -->
|
||||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="10dp"
|
||||||
hint='@{"请输入品名"}'
|
hint='@{"请输入品名"}'
|
||||||
title='@{"品名(中)"}'
|
title='@{"品名(中)"}'
|
||||||
titleLength="@{4}"
|
titleLength="@{4}"
|
||||||
type="@{DataLayoutType.INPUT}"
|
type="@{DataLayoutType.INPUT}"
|
||||||
value='@={model.goodsCn}'
|
value='@={viewModel.goodsCn}' />
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginBottom="10dp" />
|
|
||||||
|
|
||||||
<!-- 底部按钮区域 -->
|
<!-- 底部按钮区域 -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@@ -126,7 +143,7 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:background="@drawable/bg_primary_radius_4"
|
android:background="@drawable/bg_primary_radius_4"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:onClick="@{()-> model.onResetClick()}"
|
android:onClick="@{()-> viewModel.resetFilter()}"
|
||||||
android:text="重置"
|
android:text="重置"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="16sp" />
|
android:textSize="16sp" />
|
||||||
@@ -137,7 +154,7 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:background="@drawable/bg_primary_radius_4"
|
android:background="@drawable/bg_primary_radius_4"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:onClick="@{()-> model.onConfirmClick()}"
|
android:onClick="@{()-> viewModel.confirmFilter()}"
|
||||||
android:text="搜索"
|
android:text="搜索"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="16sp" />
|
android:textSize="16sp" />
|
||||||
@@ -20,7 +20,8 @@ class HbQueryListViewModel : BasePageViewModel() {
|
|||||||
|
|
||||||
val date = MutableLiveData(DateUtils.getCurrentTime().formatDate())
|
val date = MutableLiveData(DateUtils.getCurrentTime().formatDate())
|
||||||
val fNo = MutableLiveData("")
|
val fNo = MutableLiveData("")
|
||||||
val range = MutableLiveData("")
|
val dep = MutableLiveData("") // 始发站
|
||||||
|
val dest = MutableLiveData("") // 目的站
|
||||||
val addressType = MutableLiveData("")
|
val addressType = MutableLiveData("")
|
||||||
val serviceType = MutableLiveData("")
|
val serviceType = MutableLiveData("")
|
||||||
|
|
||||||
@@ -59,7 +60,7 @@ class HbQueryListViewModel : BasePageViewModel() {
|
|||||||
"limit" to pageModel.limit,
|
"limit" to pageModel.limit,
|
||||||
"fdate" to date.value,
|
"fdate" to date.value,
|
||||||
"fno" to fNo.value,
|
"fno" to fNo.value,
|
||||||
"range" to range.value,
|
"range" to buildRange(),
|
||||||
"countryType" to addressType.value,
|
"countryType" to addressType.value,
|
||||||
"serviceType" to serviceType.value,
|
"serviceType" to serviceType.value,
|
||||||
).toRequestBody()
|
).toRequestBody()
|
||||||
@@ -72,6 +73,13 @@ class HbQueryListViewModel : BasePageViewModel() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun buildRange(): String? {
|
||||||
|
val d = dep.value?.trim()
|
||||||
|
val a = dest.value?.trim()
|
||||||
|
if (d.isNullOrEmpty() && a.isNullOrEmpty()) return null
|
||||||
|
return "${d ?: ""}-${a ?: ""}"
|
||||||
|
}
|
||||||
|
|
||||||
override fun onItemClick(position: Int, type: Int) {
|
override fun onItemClick(position: Int, type: Int) {
|
||||||
val bean = pageModel.rv!!.commonAdapter()!!.getItem(position) as FlightBean
|
val bean = pageModel.rv!!.commonAdapter()!!.getItem(position) as FlightBean
|
||||||
ARouter.getInstance().build(ARouterConstants.ACTIVITY_URL_FLIGHT_QUERY_DETAILS)
|
ARouter.getInstance().build(ARouterConstants.ACTIVITY_URL_FLIGHT_QUERY_DETAILS)
|
||||||
|
|||||||
@@ -46,13 +46,29 @@
|
|||||||
android:layout_weight="1" />
|
android:layout_weight="1" />
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
|
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
|
||||||
hint='@{"请输入航程"}'
|
hint='@{"始发站"}'
|
||||||
setTextAllCaps="@{true}"
|
setTextAllCaps="@{true}"
|
||||||
type="@{SearchLayoutType.INPUT}"
|
type="@{SearchLayoutType.INPUT}"
|
||||||
value="@={viewModel.range}"
|
value="@={viewModel.dep}"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1" />
|
android:layout_weight="0.6" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="-"
|
||||||
|
android:textSize="16sp" />
|
||||||
|
|
||||||
|
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
|
||||||
|
hint='@{"目的站"}'
|
||||||
|
setTextAllCaps="@{true}"
|
||||||
|
type="@{SearchLayoutType.INPUT}"
|
||||||
|
value="@={viewModel.dest}"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="0.6" />
|
||||||
|
|
||||||
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
|
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
|
||||||
hint='@{"请选择地区类型"}'
|
hint='@{"请选择地区类型"}'
|
||||||
@@ -127,7 +143,7 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text='@{"合计:"+viewModel.count+"条"}'
|
android:text='@{"合计:"+viewModel.count+"条"}'
|
||||||
android:textColor="@color/bottom_tool_tips_text_color"
|
android:textColor="@color/bottom_tool_tips_text_color"
|
||||||
android:textSize="18sp"
|
android:textSize="18sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
|
|||||||
Reference in New Issue
Block a user