Compare commits
8 Commits
093314d601
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 6c4e97945b | |||
| a663609eeb | |||
| 74e9f5a827 | |||
| d6f72186a3 | |||
| b2ea79512c | |||
| 8b666364ae | |||
| aac2c860c6 | |||
| c2b5e74156 |
@@ -88,7 +88,19 @@
|
||||
"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_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"
|
||||
],
|
||||
"deny": [],
|
||||
"ask": []
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
[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/.vfox/cache/java/v-17+35-amzn/java-17+35-amzn
|
||||
@@ -124,11 +124,12 @@ class XxxViewModel : BasePageViewModel() {
|
||||
<LinearLayout orientation="vertical">
|
||||
<include layout="@layout/title_tool_bar" />
|
||||
|
||||
<!-- 搜索区:PadSearchLayout 横排 -->
|
||||
<!-- 搜索区:PadSearchLayout 横排 + 操作按钮(如有) -->
|
||||
<LinearLayout orientation="horizontal">
|
||||
<PadSearchLayout type="@{SearchLayoutType.DATE}" value="@={viewModel.flightDate}" />
|
||||
<PadSearchLayout type="@{SearchLayoutType.INPUT}" value="@={viewModel.flightNo}" />
|
||||
<ImageView style="@style/iv_search_action" android:onClick="@{()-> viewModel.searchClick()}" />
|
||||
<!-- 如需新增/删除按钮,尺寸规范见「开发原则」工具栏图标尺寸规范 -->
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 分页列表 -->
|
||||
@@ -842,6 +843,7 @@ companion object {
|
||||
- 标题栏统一用 `title_tool_bar` — 禁止手动编写 Toolbar
|
||||
- 优先使用 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`
|
||||
|
||||
### 环境配置
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
value="@={viewModel.status}"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
android:layout_weight="0.33" />
|
||||
|
||||
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
|
||||
hint='@{"选择所属航司"}'
|
||||
@@ -41,7 +41,7 @@
|
||||
value="@={viewModel.uldSuffix}"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
android:layout_weight="0.33" />
|
||||
|
||||
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
|
||||
hint='@{"请输入ULD编号"}'
|
||||
@@ -51,7 +51,7 @@
|
||||
value="@={viewModel.uldNo}"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
android:layout_weight="0.33" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
@@ -69,11 +69,10 @@
|
||||
android:src="@drawable/img_search" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:onClick="@{()-> viewModel.onAddClick()}"
|
||||
android:padding="4dp"
|
||||
android:src="@drawable/img_add" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -6,7 +6,17 @@
|
||||
# http://www.gradle.org/docs/current/userguide/build_environment.html
|
||||
# Specifies the JVM arguments used for the daemon process.
|
||||
# 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.include.compile.classpath=false
|
||||
# When configured, Gradle will run in incubating parallel mode.
|
||||
|
||||
@@ -47,10 +47,14 @@ data class GjjImportManifest(
|
||||
var dgrContactMame: String = "",
|
||||
// 危险品收货人通讯方式
|
||||
var dgrContactNumber: String = "",
|
||||
// 航班日期
|
||||
var fdate: String = "",
|
||||
// 航班起始站
|
||||
var fdep: String = "",
|
||||
// 航班目的站
|
||||
var fdest: String = "",
|
||||
// 航班号
|
||||
var fno: String = "",
|
||||
// 航班id
|
||||
var fid: Long = 0,
|
||||
// 运费支付方式
|
||||
@@ -114,6 +118,15 @@ data class GjjImportManifest(
|
||||
// 重量
|
||||
var weight: Double = 0.0
|
||||
) : Serializable {
|
||||
// 获取航班信息(日期去横杠/航班号)
|
||||
fun getFlightSplit(): String {
|
||||
if (fdate != "" && fno != "") {
|
||||
val (year, mon, day) = fdate.split("-")
|
||||
return "${year}${mon}${day}/${fno}"
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// ========== UI扩展字段 ==========
|
||||
// 选中状态
|
||||
@Transient
|
||||
|
||||
@@ -79,12 +79,20 @@ data class GjjImportTally(
|
||||
var goodsCn: String = "",
|
||||
// 品名(英文)
|
||||
var goodsEn: String = "",
|
||||
// 放行模式
|
||||
// 放行模式(代码)
|
||||
var relMode: String = "",
|
||||
// 放行模式(名称)
|
||||
var releaseMode: String = "",
|
||||
// 放行时间(perDate)
|
||||
var perDate: String = "",
|
||||
// 放行时间
|
||||
var releaseTime: String = "",
|
||||
// 指令类型(comType)
|
||||
var comType: String = "",
|
||||
// 指令类型
|
||||
var instructionType: String = "",
|
||||
// 放行备注
|
||||
var relRemark: String = "",
|
||||
// 备注
|
||||
var remark: String = ""
|
||||
) : Serializable {
|
||||
@@ -107,5 +115,14 @@ data class GjjImportTally(
|
||||
|
||||
// 获取完整运单号
|
||||
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 svlCharge: Double = 0.0 // 铲车费
|
||||
var tallyCharge: Double = 0.0 // 理货费
|
||||
var pipFee: Double = 0.0 // 精密仪器处理费
|
||||
var lapFee: Double = 0.0 // 活体动物处理费
|
||||
var chargeId: String = "" // 收费员
|
||||
var chargeName: String = "" // 收费员名称
|
||||
var dlvId: String = ""
|
||||
|
||||
@@ -29,6 +29,8 @@ class IntImpPickUpRecordBean : Serializable {
|
||||
var efrCharge: Double = 0.0 // 冷藏费
|
||||
var svlCharge: Double = 0.0 // 铲车费
|
||||
var tallyCharge: Double = 0.0 // 理货费
|
||||
var pipFee: Double = 0.0 // 精密仪器处理费
|
||||
var lapFee: Double = 0.0 // 活体动物处理费
|
||||
var chargeName: String = "" // 办理人名称
|
||||
var chargeId: String = "" // 收费员ID
|
||||
var dlvTime: String = "" // 出库时间
|
||||
|
||||
@@ -302,6 +302,12 @@ interface Api {
|
||||
@POST("typeCode/countryType")
|
||||
suspend fun getAreaTypeList(): DictListBean
|
||||
|
||||
/**
|
||||
* 获取国家代码
|
||||
*/
|
||||
@POST("typeCode/countryCode")
|
||||
suspend fun getCountryCodeList(): DictListBean
|
||||
|
||||
/**
|
||||
* 获取通讯方式类型
|
||||
*/
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 775 B |
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:width="200dp"
|
||||
android:height="200dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
|
||||
@@ -100,11 +100,10 @@
|
||||
|
||||
<!-- 添加按钮 -->
|
||||
<ImageView
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:onClick="@{()-> viewModel.addClick()}"
|
||||
android:padding="4dp"
|
||||
android:src="@drawable/img_add" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -104,11 +104,10 @@
|
||||
|
||||
<!-- 添加按钮 -->
|
||||
<ImageView
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:onClick="@{()-> viewModel.addClick()}"
|
||||
android:padding="4dp"
|
||||
android:src="@drawable/img_add" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -97,11 +97,10 @@
|
||||
|
||||
<!-- 新<><E696B0><EFBFBD>按钮 -->
|
||||
<ImageView
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:onClick="@{()-> viewModel.onAddClick()}"
|
||||
android:padding="4dp"
|
||||
android:src="@drawable/img_add" />
|
||||
|
||||
<!-- 删除按钮 -->
|
||||
|
||||
@@ -42,6 +42,7 @@ class IntImpQueryActivity :
|
||||
}
|
||||
|
||||
viewModel.initAgentList()
|
||||
viewModel.initSpecialCodeList()
|
||||
|
||||
viewModel.refresh()
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import dev.utils.app.info.KeyValue
|
||||
*/
|
||||
class IntImpQueryFilterDialogModel(
|
||||
val spCode: MutableLiveData<String>,
|
||||
val spCodeList: MutableLiveData<List<KeyValue>>,
|
||||
val flightNo: MutableLiveData<String>,
|
||||
val dest: MutableLiveData<String>,
|
||||
val awbType: MutableLiveData<String>,
|
||||
|
||||
@@ -110,7 +110,7 @@ class GjjManifestDetailsViewModel : BaseViewModel(), IGetData {
|
||||
DictUtils.getAgentList(addAll = false, checkedValue = data.agent) {
|
||||
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)
|
||||
}
|
||||
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.common.Constant
|
||||
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.impl.FlowBus
|
||||
import com.lukouguoji.module_base.ktx.commonAdapter
|
||||
@@ -134,11 +135,11 @@ class IntArrAirManifestViewModel : BasePageViewModel() {
|
||||
fun resetStatusClick() {
|
||||
val (maWbList, haWbList) = getSelectedItems("请选择要重置的舱单") ?: return
|
||||
|
||||
val dialog = IntImpTallyResetDialogModel { dialogModel ->
|
||||
val param = GjjDeclareParam(
|
||||
maWbList = maWbList,
|
||||
haWbList = haWbList,
|
||||
restStatus = null,
|
||||
resetReason = "状态重置"
|
||||
restStatus = dialogModel.resetStatusCode
|
||||
)
|
||||
|
||||
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) }) {
|
||||
onSuccess = { result ->
|
||||
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())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.lukouguoji.module_base.ktx.launchCollect
|
||||
import com.lukouguoji.module_base.ktx.launchLoadingCollect
|
||||
import com.lukouguoji.module_base.ktx.showToast
|
||||
import com.lukouguoji.module_base.ktx.toRequestBody
|
||||
import com.lukouguoji.module_base.ktx.verifyNullOrEmpty
|
||||
import dev.utils.app.info.KeyValue
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@@ -56,7 +57,7 @@ class IntArrSupplementInfoViewModel : BaseViewModel() {
|
||||
* 加载国家代码下拉列表
|
||||
*/
|
||||
private fun loadCountryCodeList() {
|
||||
launchCollect({ NetApply.api.getAreaTypeList() }) {
|
||||
launchCollect({ NetApply.api.getCountryCodeList() }) {
|
||||
onSuccess = { result ->
|
||||
val keyValueList = result.data?.mapNotNull { bean ->
|
||||
if (bean.code != null && bean.name != null) {
|
||||
@@ -96,6 +97,17 @@ class IntArrSupplementInfoViewModel : BaseViewModel() {
|
||||
fun save() {
|
||||
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()) {
|
||||
showToast("无可保存的数据")
|
||||
return
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.lukouguoji.gjj.viewModel
|
||||
|
||||
import android.content.Intent
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.google.gson.Gson
|
||||
import com.lukouguoji.module_base.base.BaseViewModel
|
||||
@@ -25,10 +26,27 @@ class IntImpPickUpChargeEditViewModel : BaseViewModel() {
|
||||
// 可编辑费用字段(String 用于双向绑定)
|
||||
val tranChargeStr = MutableLiveData("") // 信息费
|
||||
val whsChargeStr = MutableLiveData("") // 仓储费
|
||||
val drawBillChargeStr = MutableLiveData("") // 抽单费
|
||||
val efrChargeStr = MutableLiveData("") // 冷藏费
|
||||
val svlChargeStr = MutableLiveData("") // 铲车费
|
||||
val drawBillChargeStr = MutableLiveData("") // 文件处理费
|
||||
val svlChargeStr = 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) {
|
||||
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 ""
|
||||
whsChargeStr.value = if (bean.whsCharge != 0.0) bean.whsCharge.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 ""
|
||||
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) {
|
||||
showToast("数据解析失败")
|
||||
getTopActivity().finish()
|
||||
@@ -63,9 +94,11 @@ class IntImpPickUpChargeEditViewModel : BaseViewModel() {
|
||||
bean.tranCharge = tranChargeStr.value?.toDoubleOrNull() ?: 0.0
|
||||
bean.whsCharge = whsChargeStr.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.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({
|
||||
NetApply.api.modifyIntImpPickUpCharge(bean.toRequestBody())
|
||||
@@ -86,4 +119,15 @@ class IntImpPickUpChargeEditViewModel : BaseViewModel() {
|
||||
fun cancel() {
|
||||
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() {
|
||||
DictUtils.getSpecialCodeList(
|
||||
flag = 1, // 国际
|
||||
ieFlag = "I", // 进港
|
||||
ieFlag = "",
|
||||
parentcode = ""
|
||||
) {
|
||||
spCodeList.value = it
|
||||
|
||||
@@ -88,7 +88,7 @@ class IntImpQueryEditViewModel : BaseViewModel() {
|
||||
* flag=1(国际), ieFlag=I(进港)
|
||||
*/
|
||||
private fun loadSpCodeList() {
|
||||
launchCollect({ NetApply.api.getSpecialCodeList(1, "I", "") }) {
|
||||
launchCollect({ NetApply.api.getSpecialCodeList(1, "", "") }) {
|
||||
onSuccess = { result ->
|
||||
val list = result.data?.mapNotNull { bean ->
|
||||
if (bean.name != null && bean.code != null) {
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.lukouguoji.module_base.ktx.launchLoadingCollect
|
||||
import com.lukouguoji.module_base.ktx.showToast
|
||||
import com.lukouguoji.module_base.ktx.toRequestBody
|
||||
import com.lukouguoji.module_base.model.ScanModel
|
||||
import com.lukouguoji.module_base.util.DictUtils
|
||||
import dev.utils.app.info.KeyValue
|
||||
import dev.utils.common.DateUtils
|
||||
import com.lukouguoji.module_base.ktx.formatDate
|
||||
@@ -55,6 +56,9 @@ class IntImpQueryViewModel : BasePageViewModel(), IOnItemClickListener {
|
||||
val totalPc = MutableLiveData("0")
|
||||
val totalWeight = MutableLiveData("0")
|
||||
|
||||
// ==================== 特码下拉 ====================
|
||||
val spCodeList = MutableLiveData<List<KeyValue>>(emptyList())
|
||||
|
||||
// ==================== 筛选条件 ====================
|
||||
val spCode = MutableLiveData("")
|
||||
val flightNo = MutableLiveData("")
|
||||
@@ -78,6 +82,7 @@ class IntImpQueryViewModel : BasePageViewModel(), IOnItemClickListener {
|
||||
fun filterClick() {
|
||||
val filterDialog = IntImpQueryFilterDialogModel(
|
||||
spCode = spCode,
|
||||
spCodeList = spCodeList,
|
||||
flightNo = flightNo,
|
||||
dest = dest,
|
||||
awbType = awbType,
|
||||
@@ -166,6 +171,16 @@ class IntImpQueryViewModel : BasePageViewModel(), IOnItemClickListener {
|
||||
}
|
||||
}
|
||||
|
||||
fun initSpecialCodeList() {
|
||||
DictUtils.getSpecialCodeList(
|
||||
flag = 1,
|
||||
ieFlag = "",
|
||||
parentcode = ""
|
||||
) {
|
||||
spCodeList.value = it
|
||||
}
|
||||
}
|
||||
|
||||
fun initAgentList() {
|
||||
launchCollect({
|
||||
NetApply.api.getIntImpAgentList()
|
||||
|
||||
@@ -182,6 +182,18 @@ class IntImpTallyViewModel : BasePageViewModel() {
|
||||
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() }) {
|
||||
onSuccess = { result ->
|
||||
|
||||
@@ -61,10 +61,10 @@
|
||||
|
||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||
enable="@{false}"
|
||||
title='@{"特码"}'
|
||||
title='@{"航班信息"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{viewModel.dataBean.spCode}'
|
||||
value='@{viewModel.dataBean.getFlightSplit()}'
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
android:layout_weight="1"
|
||||
enable="@{true}"
|
||||
hint='@{"请输入名称"}'
|
||||
required="@{true}"
|
||||
title='@{"名称"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
@@ -71,6 +72,7 @@
|
||||
enable="@{true}"
|
||||
hint='@{"请选择国家代码"}'
|
||||
list="@{viewModel.countryCodeList}"
|
||||
required="@{true}"
|
||||
title='@{"国家代码"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.SPINNER}"
|
||||
@@ -83,6 +85,7 @@
|
||||
enable="@{true}"
|
||||
hint='@{"请选择通讯方式"}'
|
||||
list="@{viewModel.comTypeList}"
|
||||
required="@{true}"
|
||||
title='@{"通讯方式"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.SPINNER}"
|
||||
@@ -103,6 +106,7 @@
|
||||
android:layout_weight="1"
|
||||
enable="@{true}"
|
||||
hint='@{"请输入联系号码"}'
|
||||
required="@{true}"
|
||||
title='@{"联系号码"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
@@ -154,6 +158,7 @@
|
||||
android:layout_weight="1"
|
||||
enable="@{true}"
|
||||
hint='@{"请输入名称"}'
|
||||
required="@{true}"
|
||||
title='@{"名称"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
@@ -166,6 +171,7 @@
|
||||
enable="@{true}"
|
||||
hint='@{"请选择国家代码"}'
|
||||
list="@{viewModel.countryCodeList}"
|
||||
required="@{true}"
|
||||
title='@{"国家代码"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.SPINNER}"
|
||||
@@ -178,6 +184,7 @@
|
||||
enable="@{true}"
|
||||
hint='@{"请选择通讯方式"}'
|
||||
list="@{viewModel.comTypeList}"
|
||||
required="@{true}"
|
||||
title='@{"通讯方式"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.SPINNER}"
|
||||
@@ -198,6 +205,7 @@
|
||||
android:layout_weight="1"
|
||||
enable="@{true}"
|
||||
hint='@{"请输入联系号码"}'
|
||||
required="@{true}"
|
||||
title='@{"联系号码"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
|
||||
@@ -99,11 +99,10 @@
|
||||
android:src="@drawable/img_search" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:onClick="@{()-> viewModel.addClick()}"
|
||||
android:padding="4dp"
|
||||
android:src="@drawable/img_add" />
|
||||
|
||||
<ImageView
|
||||
|
||||
@@ -109,11 +109,10 @@
|
||||
|
||||
<!-- 新增按钮 -->
|
||||
<ImageView
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:onClick="@{()-> viewModel.onAddClick()}"
|
||||
android:padding="4dp"
|
||||
android:src="@drawable/img_add" />
|
||||
|
||||
<!-- 删除按钮 -->
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
android:layout_weight="1"
|
||||
enable="@{false}"
|
||||
title='@{"运 单 号"}'
|
||||
titleLength="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{viewModel.dataBean.wbNo}' />
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
android:layout_weight="1"
|
||||
enable="@{false}"
|
||||
title='@{"代 理 人"}'
|
||||
titleLength="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{viewModel.dataBean.agentCode}' />
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
android:layout_weight="1"
|
||||
enable="@{false}"
|
||||
title='@{"特 码"}'
|
||||
titleLength="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{viewModel.dataBean.spCode}' />
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
android:layout_weight="1"
|
||||
enable="@{false}"
|
||||
title='@{"提货编号"}'
|
||||
titleLength="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{viewModel.dataBean.pkId}' />
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
android:layout_weight="1"
|
||||
enable="@{false}"
|
||||
title='@{"件数"}'
|
||||
titleLength="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{String.valueOf(viewModel.dataBean.pc)}' />
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
android:layout_weight="1"
|
||||
enable="@{false}"
|
||||
title='@{"重量"}'
|
||||
titleLength="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{String.valueOf(viewModel.dataBean.weight)}' />
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
android:layout_weight="1"
|
||||
enable="@{false}"
|
||||
title='@{"计费重量"}'
|
||||
titleLength="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{String.valueOf(viewModel.dataBean.cashWeight)}' />
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
enable="@{true}"
|
||||
hint='@{"请输入信息费"}'
|
||||
title='@{"信息费"}'
|
||||
titleLength="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@={viewModel.tranChargeStr}' />
|
||||
|
||||
@@ -149,13 +149,13 @@
|
||||
android:layout_weight="1"
|
||||
enable="@{false}"
|
||||
title='@{"服务费"}'
|
||||
titleLength="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{String.valueOf(viewModel.dataBean.optCharge)}' />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 第4行:仓储费、抽单费、冷藏费(可编辑) -->
|
||||
<!-- 第4行:仓储费、文件处理费、叉车费(可编辑) -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -169,7 +169,7 @@
|
||||
enable="@{true}"
|
||||
hint='@{"请输入仓储费"}'
|
||||
title='@{"仓储费"}'
|
||||
titleLength="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@={viewModel.whsChargeStr}' />
|
||||
|
||||
@@ -178,9 +178,9 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
enable="@{true}"
|
||||
hint='@{"请输入抽单费"}'
|
||||
title='@{"抽单费"}'
|
||||
titleLength="@{5}"
|
||||
hint='@{"请输入文件处理费"}'
|
||||
title='@{"文件处理费"}'
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@={viewModel.drawBillChargeStr}' />
|
||||
|
||||
@@ -189,32 +189,21 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
enable="@{true}"
|
||||
hint='@{"请输入冷藏费"}'
|
||||
title='@{"冷藏费"}'
|
||||
titleLength="@{5}"
|
||||
hint='@{"请输入叉车费"}'
|
||||
title='@{"叉车费"}'
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@={viewModel.efrChargeStr}' />
|
||||
value='@={viewModel.svlChargeStr}' />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 第5行:铲车费、理货费(可编辑)、总金额(只读) -->
|
||||
<!-- 第5行:理货费、精密仪器处理费、活体动物处理费(可编辑) -->
|
||||
<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="@{true}"
|
||||
hint='@{"请输入铲车费"}'
|
||||
title='@{"铲车费"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@={viewModel.svlChargeStr}' />
|
||||
|
||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -222,7 +211,7 @@
|
||||
enable="@{true}"
|
||||
hint='@{"请输入理货费"}'
|
||||
title='@{"理货费"}'
|
||||
titleLength="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@={viewModel.tallyChargeStr}' />
|
||||
|
||||
@@ -230,11 +219,64 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
enable="@{false}"
|
||||
title='@{"总金额"}'
|
||||
titleLength="@{5}"
|
||||
enable="@{true}"
|
||||
hint='@{"请输入精密仪器处理费"}'
|
||||
title='@{"精密仪器处理费"}'
|
||||
titleLength="@{7}"
|
||||
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>
|
||||
|
||||
|
||||
@@ -41,34 +41,34 @@
|
||||
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="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{viewModel.dataBean.wbNo}'
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
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="@{false}"
|
||||
title='@{"代理人"}'
|
||||
titleLength="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{viewModel.dataBean.agentCode}'
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
value='@{viewModel.dataBean.agentCode}' />
|
||||
|
||||
<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_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
android:layout_weight="1"
|
||||
enable="@{false}"
|
||||
title='@{"特码"}'
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{viewModel.dataBean.spCode}' />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -80,34 +80,34 @@
|
||||
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="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{viewModel.dataBean.pkId}'
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
value='@{viewModel.dataBean.pkId}' />
|
||||
|
||||
<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="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{String.valueOf(viewModel.dataBean.pc)}'
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
value='@{String.valueOf(viewModel.dataBean.pc)}' />
|
||||
|
||||
<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_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>
|
||||
|
||||
@@ -119,38 +119,38 @@
|
||||
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="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{String.valueOf(viewModel.dataBean.cashWeight)}'
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
value='@{String.valueOf(viewModel.dataBean.cashWeight)}' />
|
||||
|
||||
<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="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{String.valueOf(viewModel.dataBean.tranCharge)}'
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
value='@{String.valueOf(viewModel.dataBean.tranCharge)}' />
|
||||
|
||||
<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="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{String.valueOf(viewModel.dataBean.optCharge)}'
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
value='@{String.valueOf(viewModel.dataBean.optCharge)}' />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 第4行:仓储费、抽单费、冷藏费 -->
|
||||
<!-- 第4行:仓储费、文件处理费、叉车费 -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -158,38 +158,38 @@
|
||||
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="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{String.valueOf(viewModel.dataBean.whsCharge)}'
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
value='@{String.valueOf(viewModel.dataBean.whsCharge)}' />
|
||||
|
||||
<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_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
|
||||
enable="@{false}"
|
||||
title='@{"冷藏费"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{String.valueOf(viewModel.dataBean.efrCharge)}'
|
||||
android:layout_width="0dp"
|
||||
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>
|
||||
|
||||
<!-- 第5行:铲车费、理货费、总金额 -->
|
||||
<!-- 第5行:理货费、精密仪器处理费、活体动物处理费 -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -197,38 +197,38 @@
|
||||
android:orientation="horizontal">
|
||||
|
||||
<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_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||
android:layout_weight="1"
|
||||
enable="@{false}"
|
||||
title='@{"理货费"}'
|
||||
titleLength="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{String.valueOf(viewModel.dataBean.tallyCharge)}'
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
value='@{String.valueOf(viewModel.dataBean.tallyCharge)}' />
|
||||
|
||||
<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_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>
|
||||
|
||||
<!-- 第6行:提取时间、办理人、出库时间 -->
|
||||
<!-- 第6行:总费用、提取时间、办理人 -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -236,34 +236,75 @@
|
||||
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='@{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}"
|
||||
title='@{"提取时间"}'
|
||||
titleLength="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{viewModel.dataBean.chargeTime}'
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
value='@{viewModel.dataBean.chargeTime}' />
|
||||
|
||||
<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="@{5}"
|
||||
titleLength="@{7}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{viewModel.dataBean.chargeName}'
|
||||
android:layout_width="0dp"
|
||||
value='@{viewModel.dataBean.chargeName}' />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 第7行:出库时间 -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
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
|
||||
enable="@{false}"
|
||||
title='@{"出库时间"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{viewModel.dataBean.dlvTime}'
|
||||
android:layout_width="0dp"
|
||||
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>
|
||||
|
||||
|
||||
@@ -77,10 +77,10 @@
|
||||
|
||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||
enable="@{false}"
|
||||
title='@{"特码"}'
|
||||
title='@{"航班信息"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{viewModel.dataBean.spCode}'
|
||||
value='@{viewModel.dataBean.getFlightSplit()}'
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
@@ -312,7 +312,7 @@
|
||||
title='@{"放行模式"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{viewModel.dataBean.releaseMode}'
|
||||
value='@{viewModel.dataBean.relMode}'
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
@@ -322,7 +322,7 @@
|
||||
title='@{"放行时间"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{viewModel.dataBean.releaseTime}'
|
||||
value='@{viewModel.dataBean.perDate}'
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
@@ -332,17 +332,17 @@
|
||||
title='@{"指令类型"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{viewModel.dataBean.instructionType}'
|
||||
value='@{viewModel.dataBean.comType}'
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||
enable="@{false}"
|
||||
title='@{"备注"}'
|
||||
title='@{"放行备注"}'
|
||||
titleLength="@{5}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
value='@{viewModel.dataBean.remark}'
|
||||
value='@{viewModel.dataBean.relRemark}'
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
|
||||
@@ -42,10 +42,11 @@
|
||||
|
||||
<!-- 特码 -->
|
||||
<com.lukouguoji.module_base.ui.weight.data.layout.PadDataLayoutNew
|
||||
hint='@{"请输入特码"}'
|
||||
hint='@{"请选择特码"}'
|
||||
list="@{model.spCodeList}"
|
||||
title='@{"特码"}'
|
||||
titleLength="@{4}"
|
||||
type="@{DataLayoutType.INPUT}"
|
||||
type="@{DataLayoutType.SPINNER}"
|
||||
value='@={model.spCode}'
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
@@ -174,7 +174,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp">
|
||||
|
||||
<!-- 特码 -->
|
||||
<!-- 航班信息 -->
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -184,13 +184,13 @@
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
completeSpace="@{4}"
|
||||
android:text="特码:" />
|
||||
completeSpace="@{5}"
|
||||
android:text="航班信息:" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{manifest.spCode ?? ``}" />
|
||||
android:text="@{manifest.getFlightSplit()}" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
|
||||
@@ -181,7 +181,7 @@
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<!-- 特码 -->
|
||||
<!-- 航班信息 -->
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -192,13 +192,13 @@
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
completeSpace="@{4}"
|
||||
android:text="特码:" />
|
||||
completeSpace="@{5}"
|
||||
android:text="航班信息:" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{bean.spCode}" />
|
||||
android:text="@{bean.getFlightSplit()}" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
@@ -20,7 +20,8 @@ class HbQueryListViewModel : BasePageViewModel() {
|
||||
|
||||
val date = MutableLiveData(DateUtils.getCurrentTime().formatDate())
|
||||
val fNo = MutableLiveData("")
|
||||
val range = MutableLiveData("")
|
||||
val dep = MutableLiveData("") // 始发站
|
||||
val dest = MutableLiveData("") // 目的站
|
||||
val addressType = MutableLiveData("")
|
||||
val serviceType = MutableLiveData("")
|
||||
|
||||
@@ -59,7 +60,7 @@ class HbQueryListViewModel : BasePageViewModel() {
|
||||
"limit" to pageModel.limit,
|
||||
"fdate" to date.value,
|
||||
"fno" to fNo.value,
|
||||
"range" to range.value,
|
||||
"range" to buildRange(),
|
||||
"countryType" to addressType.value,
|
||||
"serviceType" to serviceType.value,
|
||||
).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) {
|
||||
val bean = pageModel.rv!!.commonAdapter()!!.getItem(position) as FlightBean
|
||||
ARouter.getInstance().build(ARouterConstants.ACTIVITY_URL_FLIGHT_QUERY_DETAILS)
|
||||
|
||||
@@ -46,13 +46,29 @@
|
||||
android:layout_weight="1" />
|
||||
|
||||
<com.lukouguoji.module_base.ui.weight.search.layout.PadSearchLayout
|
||||
hint='@{"请输入航程"}'
|
||||
hint='@{"始发站"}'
|
||||
setTextAllCaps="@{true}"
|
||||
type="@{SearchLayoutType.INPUT}"
|
||||
value="@={viewModel.range}"
|
||||
value="@={viewModel.dep}"
|
||||
android:layout_width="0dp"
|
||||
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
|
||||
hint='@{"请选择地区类型"}'
|
||||
@@ -127,7 +143,7 @@
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text='@{"合计:"+viewModel.count+"条"}'
|
||||
android:text='@{"合计:"+viewModel.count+"条"}'
|
||||
android:textColor="@color/bottom_tool_tips_text_color"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
|
||||
Reference in New Issue
Block a user