feat: 国际出港运单修改

This commit is contained in:
2025-12-03 21:38:50 +08:00
parent f1abc3ddfc
commit 829a6328aa
9 changed files with 535 additions and 8 deletions

View File

@@ -8,6 +8,9 @@ import com.lukouguoji.gjc.R
import com.lukouguoji.gjc.databinding.ActivityGjcQueryBinding
import com.lukouguoji.gjc.viewModel.GjcQueryViewModel
import com.lukouguoji.module_base.base.BaseBindingActivity
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.ktx.getLifecycleOwner
import com.lukouguoji.module_base.router.ARouterConstants
@@ -31,6 +34,11 @@ class GjcQueryActivity :
viewModel.pageModel
.bindSmartRefreshLayout(binding.srl, binding.rv, viewModel, getLifecycleOwner())
// 监听刷新事件
FlowBus.with<String>(ConstantEvent.EVENT_REFRESH).observe(this) {
viewModel.refresh()
}
// 初始化代理列表
viewModel.initAgentList()

View File

@@ -0,0 +1,47 @@
package com.lukouguoji.gjc.activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
import com.alibaba.android.arouter.facade.annotation.Route
import com.google.gson.Gson
import com.lukouguoji.gjc.R
import com.lukouguoji.gjc.databinding.ActivityGjcQueryEditBinding
import com.lukouguoji.gjc.viewModel.GjcQueryEditViewModel
import com.lukouguoji.module_base.base.BaseBindingActivity
import com.lukouguoji.module_base.bean.GjcMaWb
import com.lukouguoji.module_base.common.Constant
import com.lukouguoji.module_base.router.ARouterConstants
/**
* 国际出港运单修改页
*/
@Route(path = ARouterConstants.ACTIVITY_URL_GJC_QUERY_EDIT)
class GjcQueryEditActivity :
BaseBindingActivity<ActivityGjcQueryEditBinding, GjcQueryEditViewModel>() {
override fun layoutId() = R.layout.activity_gjc_query_edit
override fun viewModelClass() = GjcQueryEditViewModel::class.java
override fun initOnCreate(savedInstanceState: Bundle?) {
binding.viewModel = viewModel
// 处理返回按钮点击
binding.root.findViewById<android.widget.LinearLayout>(R.id.tool_back)?.setOnClickListener {
finish()
}
// 初始化数据
viewModel.initOnCreated(intent)
}
companion object {
@JvmStatic
fun start(context: Context, bean: GjcMaWb) {
val starter = Intent(context, GjcQueryEditActivity::class.java)
.putExtra(Constant.Key.DATA, Gson().toJson(bean))
context.startActivity(starter)
}
}
}

View File

@@ -1,6 +1,9 @@
package com.lukouguoji.gjc.holder
import android.view.View
import android.widget.TextView
import com.lukouguoji.gjc.R
import com.lukouguoji.gjc.activity.GjcQueryEditActivity
import com.lukouguoji.gjc.databinding.ItemGjcQueryBinding
import com.lukouguoji.module_base.base.BaseViewHolder
import com.lukouguoji.module_base.bean.GjcMaWb
@@ -23,5 +26,10 @@ class GjcQueryViewHolder(view: View) :
// // 后续可添加详情页跳转
// // GjcQueryDetailsActivity.start(it.context, bean.maWbId)
// }
// 修改按钮点击事件
binding.root.findViewById<TextView>(R.id.btnEdit)?.setOnClickListener {
GjcQueryEditActivity.start(it.context, bean)
}
}
}

View File

@@ -0,0 +1,75 @@
package com.lukouguoji.gjc.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.GjcMaWb
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 com.lukouguoji.module_base.ktx.verifyNullOrEmpty
import kotlinx.coroutines.launch
/**
* 国际出港运单修改 ViewModel
*/
class GjcQueryEditViewModel : BaseViewModel() {
// 数据Bean
val dataBean = MutableLiveData(GjcMaWb())
/**
* 初始化数据
*/
fun initOnCreated(intent: Intent) {
val jsonData = intent.getStringExtra(Constant.Key.DATA) ?: ""
if (jsonData.isNotEmpty()) {
try {
dataBean.value = Gson().fromJson(jsonData, GjcMaWb::class.java)
} catch (e: Exception) {
showToast("数据解析失败")
getTopActivity().finish()
}
} else {
showToast("未接收到数据")
getTopActivity().finish()
}
}
/**
* 保存修改
*/
fun submit() {
val bean = dataBean.value ?: return
// 字段校验
if (bean.wbNo.verifyNullOrEmpty("运单号不能为空")) return
// 调用更新接口
launchLoadingCollect({
NetApply.api.updateGjcMaWb(Gson().toJson(bean).toRequestBody())
}) {
onSuccess = {
showToast("修改成功")
// 发送刷新事件
viewModelScope.launch {
FlowBus.with<String>(ConstantEvent.EVENT_REFRESH).emit("refresh")
}
getTopActivity().finish()
}
}
}
/**
* 取消按钮
*/
fun cancel() {
getTopActivity().finish()
}
}