From 829a6328aa43de15f48df72e2a0769c4c932409a Mon Sep 17 00:00:00 2001 From: YANGJIANKUAN Date: Wed, 3 Dec 2025 21:38:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9B=BD=E9=99=85=E5=87=BA=E6=B8=AF?= =?UTF-8?q?=E8=BF=90=E5=8D=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 6 + .../lukouguoji/module_base/http/net/Api.kt | 7 + .../module_base/router/ARouterConstants.kt | 1 + .../gjc/activity/GjcQueryActivity.kt | 8 + .../gjc/activity/GjcQueryEditActivity.kt | 47 +++ .../gjc/holder/GjcQueryViewHolder.kt | 8 + .../gjc/viewModel/GjcQueryEditViewModel.kt | 75 ++++ .../res/layout/activity_gjc_query_edit.xml | 349 ++++++++++++++++++ .../src/main/res/layout/item_gjc_query.xml | 42 ++- 9 files changed, 535 insertions(+), 8 deletions(-) create mode 100644 module_gjc/src/main/java/com/lukouguoji/gjc/activity/GjcQueryEditActivity.kt create mode 100644 module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcQueryEditViewModel.kt create mode 100644 module_gjc/src/main/res/layout/activity_gjc_query_edit.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2db77ce..392cb30 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -110,6 +110,12 @@ android:configChanges="orientation|keyboardHidden" android:exported="false" android:screenOrientation="userLandscape" /> + + + /** + * 国际出港运单修改 + * 接口路径: /IntExpSearch/update + */ + @POST("IntExpSearch/update") + suspend fun updateGjcMaWb(@Body data: RequestBody): BaseResultBean + /** * 国际出港板箱过磅-分页搜索 * 接口路径: /IntExpWeighting/pageQuery diff --git a/module_base/src/main/java/com/lukouguoji/module_base/router/ARouterConstants.kt b/module_base/src/main/java/com/lukouguoji/module_base/router/ARouterConstants.kt index b00869c..b8ff974 100644 --- a/module_base/src/main/java/com/lukouguoji/module_base/router/ARouterConstants.kt +++ b/module_base/src/main/java/com/lukouguoji/module_base/router/ARouterConstants.kt @@ -129,6 +129,7 @@ object ARouterConstants { const val ACTIVITY_URL_GJC_QUERY_LIST = "/gjc/GjcQueryListActivity" //国际出港模块 查询 const val ACTIVITY_URL_GJC_QUERY_INFO = "/gjc/GjcQueryInfoActivity" //国际出港模块 详情 + const val ACTIVITY_URL_GJC_QUERY_EDIT = "/gjc/GjcQueryEditActivity" //国际出港模块 运单修改 const val ACTIVITY_URL_GJC_YI_KU = "/gjc/GjcYiKuListActivity" //国际出港 移库 const val ACTIVITY_URL_GJC_BOX_ASSEMBLE = "/gjc/GjcBoxAssembleListActivity" //国际出港 板箱组装 diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/activity/GjcQueryActivity.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/activity/GjcQueryActivity.kt index bff7fca..aecf0f8 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/activity/GjcQueryActivity.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/activity/GjcQueryActivity.kt @@ -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(ConstantEvent.EVENT_REFRESH).observe(this) { + viewModel.refresh() + } + // 初始化代理列表 viewModel.initAgentList() diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/activity/GjcQueryEditActivity.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/activity/GjcQueryEditActivity.kt new file mode 100644 index 0000000..a8a768b --- /dev/null +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/activity/GjcQueryEditActivity.kt @@ -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() { + + 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(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) + } + } +} diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/holder/GjcQueryViewHolder.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/holder/GjcQueryViewHolder.kt index 6254618..e535be6 100644 --- a/module_gjc/src/main/java/com/lukouguoji/gjc/holder/GjcQueryViewHolder.kt +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/holder/GjcQueryViewHolder.kt @@ -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(R.id.btnEdit)?.setOnClickListener { + GjcQueryEditActivity.start(it.context, bean) + } } } diff --git a/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcQueryEditViewModel.kt b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcQueryEditViewModel.kt new file mode 100644 index 0000000..00e7049 --- /dev/null +++ b/module_gjc/src/main/java/com/lukouguoji/gjc/viewModel/GjcQueryEditViewModel.kt @@ -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(ConstantEvent.EVENT_REFRESH).emit("refresh") + } + getTopActivity().finish() + } + } + } + + /** + * 取消按钮 + */ + fun cancel() { + getTopActivity().finish() + } +} diff --git a/module_gjc/src/main/res/layout/activity_gjc_query_edit.xml b/module_gjc/src/main/res/layout/activity_gjc_query_edit.xml new file mode 100644 index 0000000..d0c86c7 --- /dev/null +++ b/module_gjc/src/main/res/layout/activity_gjc_query_edit.xml @@ -0,0 +1,349 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/module_gjc/src/main/res/layout/item_gjc_query.xml b/module_gjc/src/main/res/layout/item_gjc_query.xml index 92f0dde..ce0694c 100644 --- a/module_gjc/src/main/res/layout/item_gjc_query.xml +++ b/module_gjc/src/main/res/layout/item_gjc_query.xml @@ -8,15 +8,24 @@ type="com.lukouguoji.module_base.bean.GjcMaWb" /> - + android:layout_height="wrap_content"> + + + + + + + + + + + + + + + +