feat: 国际进港提取记录费用修改页面及列表侧滑菜单
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
package com.lukouguoji.gjj.activity
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import com.google.gson.Gson
|
||||
import com.lukouguoji.gjj.R
|
||||
import com.lukouguoji.gjj.databinding.ActivityIntImpPickUpChargeEditBinding
|
||||
import com.lukouguoji.gjj.viewModel.IntImpPickUpChargeEditViewModel
|
||||
import com.lukouguoji.module_base.base.BaseBindingActivity
|
||||
import com.lukouguoji.module_base.bean.IntImpPickUpRecordBean
|
||||
import com.lukouguoji.module_base.common.Constant
|
||||
|
||||
/**
|
||||
* 国际进港-费用修改
|
||||
*/
|
||||
class IntImpPickUpChargeEditActivity :
|
||||
BaseBindingActivity<ActivityIntImpPickUpChargeEditBinding, IntImpPickUpChargeEditViewModel>() {
|
||||
|
||||
override fun layoutId() = R.layout.activity_int_imp_pick_up_charge_edit
|
||||
override fun viewModelClass() = IntImpPickUpChargeEditViewModel::class.java
|
||||
|
||||
override fun initOnCreate(savedInstanceState: Bundle?) {
|
||||
setBackArrow("国际进港费用修改")
|
||||
binding.viewModel = viewModel
|
||||
viewModel.initOnCreated(intent)
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun start(context: Context, bean: IntImpPickUpRecordBean) {
|
||||
val starter = Intent(context, IntImpPickUpChargeEditActivity::class.java)
|
||||
.putExtra(Constant.Key.DATA, Gson().toJson(bean))
|
||||
context.startActivity(starter)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,8 @@ import com.lukouguoji.module_base.common.Constant
|
||||
import com.lukouguoji.module_base.common.ConstantEvent
|
||||
import com.lukouguoji.module_base.impl.FlowBus
|
||||
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.ktx.showToast
|
||||
import com.lukouguoji.module_base.model.ConfirmDialogModel
|
||||
@@ -41,6 +43,20 @@ class IntImpPickUpRecordActivity :
|
||||
// 绑定分页
|
||||
viewModel.pageModel.bindSmartRefreshLayout(binding.srl, binding.rv, viewModel, this)
|
||||
|
||||
// 设置列表项点击回调(侧滑修改按钮)
|
||||
binding.rv.addOnItemClickListener(object : IOnItemClickListener {
|
||||
override fun onItemClick(position: Int, type: Int) {
|
||||
when (type) {
|
||||
2000 -> {
|
||||
// 侧滑修改操作
|
||||
val list = viewModel.pageModel.rv?.commonAdapter()?.items as? List<*> ?: return
|
||||
val bean = list.getOrNull(position) as? IntImpPickUpRecordBean ?: return
|
||||
IntImpPickUpChargeEditActivity.start(this@IntImpPickUpRecordActivity, bean)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// 监听刷新事件
|
||||
FlowBus.with<String>(ConstantEvent.EVENT_REFRESH).observe(this) {
|
||||
viewModel.refresh()
|
||||
|
||||
@@ -25,8 +25,14 @@ class IntImpPickUpRecordViewHolder(view: View) :
|
||||
}
|
||||
|
||||
// 列表项点击进入提取详情
|
||||
itemView.setOnClickListener {
|
||||
binding.ll.setOnClickListener {
|
||||
IntImpPickUpRecordDetailsActivity.start(itemView.context, bean)
|
||||
}
|
||||
|
||||
// 侧滑菜单 - 修改按钮
|
||||
binding.btnEdit.setOnClickListener {
|
||||
binding.swipeMenu.quickClose()
|
||||
clickListener?.onItemClick(position, 2000) // type=2000表示修改操作
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
package com.lukouguoji.gjj.viewModel
|
||||
|
||||
import android.content.Intent
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.google.gson.Gson
|
||||
import com.lukouguoji.module_base.base.BaseViewModel
|
||||
import com.lukouguoji.module_base.bean.IntImpPickUpRecordBean
|
||||
import com.lukouguoji.module_base.common.Constant
|
||||
import com.lukouguoji.module_base.common.ConstantEvent
|
||||
import com.lukouguoji.module_base.http.net.NetApply
|
||||
import com.lukouguoji.module_base.impl.FlowBus
|
||||
import com.lukouguoji.module_base.ktx.launchLoadingCollect
|
||||
import com.lukouguoji.module_base.ktx.showToast
|
||||
import com.lukouguoji.module_base.ktx.toRequestBody
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
* 国际进港费用修改 ViewModel
|
||||
*/
|
||||
class IntImpPickUpChargeEditViewModel : BaseViewModel() {
|
||||
|
||||
val dataBean = MutableLiveData(IntImpPickUpRecordBean())
|
||||
|
||||
// 可编辑费用字段(String 用于双向绑定)
|
||||
val tranChargeStr = MutableLiveData("") // 信息费
|
||||
val whsChargeStr = MutableLiveData("") // 仓储费
|
||||
val drawBillChargeStr = MutableLiveData("") // 抽单费
|
||||
val efrChargeStr = MutableLiveData("") // 冷藏费
|
||||
val svlChargeStr = MutableLiveData("") // 铲车费
|
||||
val tallyChargeStr = MutableLiveData("") // 理货费
|
||||
|
||||
fun initOnCreated(intent: Intent) {
|
||||
val jsonData = intent.getStringExtra(Constant.Key.DATA) ?: ""
|
||||
if (jsonData.isNotEmpty()) {
|
||||
try {
|
||||
val bean = Gson().fromJson(jsonData, IntImpPickUpRecordBean::class.java)
|
||||
dataBean.value = bean
|
||||
// 初始化可编辑费用字段
|
||||
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 ""
|
||||
} catch (e: Exception) {
|
||||
showToast("数据解析失败")
|
||||
getTopActivity().finish()
|
||||
}
|
||||
} else {
|
||||
showToast("未接收到数据")
|
||||
getTopActivity().finish()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存修改
|
||||
*/
|
||||
fun submit() {
|
||||
val bean = dataBean.value ?: return
|
||||
|
||||
// 同步可编辑费用字段回 bean
|
||||
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
|
||||
|
||||
launchLoadingCollect({
|
||||
NetApply.api.modifyIntImpPickUpCharge(bean.toRequestBody())
|
||||
}) {
|
||||
onSuccess = {
|
||||
showToast("修改成功")
|
||||
viewModelScope.launch {
|
||||
FlowBus.with<String>(ConstantEvent.EVENT_REFRESH).emit("refresh")
|
||||
}
|
||||
getTopActivity().finish()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消
|
||||
*/
|
||||
fun cancel() {
|
||||
getTopActivity().finish()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user