From a64b963d03c67582ecec962370dc3cc08dcaede7 Mon Sep 17 00:00:00 2001 From: YANGJIANKUAN Date: Thu, 12 Mar 2026 17:49:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9B=BD=E9=99=85=E8=BF=9B=E6=B8=AF?= =?UTF-8?q?=E8=88=B1=E5=8D=95=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- app/src/main/AndroidManifest.xml | 7 + .../module_base/router/ARouterConstants.kt | 1 + .../activity/IntImpManifestDetailsActivity.kt | 39 +++ .../gjj/holder/IntImpManifestViewHolder.kt | 3 + .../IntImpManifestDetailsViewModel.kt | 26 ++ .../gjj/viewModel/IntImpManifestViewModel.kt | 8 +- .../activity_int_imp_manifest_details.xml | 293 ++++++++++++++++++ .../main/res/layout/item_int_imp_manifest.xml | 1 + 8 files changed, 377 insertions(+), 1 deletion(-) create mode 100644 module_gjj/src/main/java/com/lukouguoji/gjj/activity/IntImpManifestDetailsActivity.kt create mode 100644 module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestDetailsViewModel.kt create mode 100644 module_gjj/src/main/res/layout/activity_int_imp_manifest_details.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 98337de..955b3ce 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -425,6 +425,13 @@ android:exported="false" android:screenOrientation="userLandscape" /> + + + () { + + override fun layoutId() = R.layout.activity_int_imp_manifest_details + override fun viewModelClass() = IntImpManifestDetailsViewModel::class.java + + override fun initOnCreate(savedInstanceState: Bundle?) { + setBackArrow("进港舱单详情") + binding.viewModel = viewModel + viewModel.initOnCreated(intent) + } + + companion object { + @JvmStatic + fun start(context: Context, manifest: GjjManifest) { + val starter = Intent(context, IntImpManifestDetailsActivity::class.java) + .putExtra(Constant.Key.DATA, manifest) + context.startActivity(starter) + } + } +} diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/holder/IntImpManifestViewHolder.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/holder/IntImpManifestViewHolder.kt index 95c73a5..1ae3949 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/holder/IntImpManifestViewHolder.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/holder/IntImpManifestViewHolder.kt @@ -30,6 +30,9 @@ class IntImpManifestViewHolder(view: View) : binding.rvSub.adapter?.notifyDataSetChanged() } + // 整卡点击 - 跳转详情页 + notifyItemClick(position, binding.llContent) + // 编辑按钮点击 binding.btnEdit.setOnClickListener { clickListener?.onItemClick(position, 101) // 101=编辑 diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestDetailsViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestDetailsViewModel.kt new file mode 100644 index 0000000..f01415e --- /dev/null +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestDetailsViewModel.kt @@ -0,0 +1,26 @@ +package com.lukouguoji.gjj.viewModel + +import android.content.Intent +import androidx.lifecycle.MutableLiveData +import com.lukouguoji.module_base.base.BaseViewModel +import com.lukouguoji.module_base.bean.GjjManifest +import com.lukouguoji.module_base.common.Constant + +/** + * 国际进港舱单详情 ViewModel + */ +class IntImpManifestDetailsViewModel : BaseViewModel() { + + // 舱单数据 + val dataBean = MutableLiveData(GjjManifest()) + + /** + * 初始化数据(从列表项携带的数据) + */ + fun initOnCreated(intent: Intent) { + val manifest = intent.getSerializableExtra(Constant.Key.DATA) as? GjjManifest + if (manifest != null) { + dataBean.value = manifest + } + } +} diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestViewModel.kt index afc18c7..a30391d 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpManifestViewModel.kt @@ -258,7 +258,7 @@ class IntImpManifestViewModel : BasePageViewModel() { } /** - * Item点击处理(侧滑按钮) + * Item点击处理(侧滑按钮 + 列表项点击) */ override fun onItemClick(position: Int, type: Int) { val bean = pageModel.rv?.commonAdapter()?.getItem(position) as? GjjManifest ?: return @@ -280,6 +280,12 @@ class IntImpManifestViewModel : BasePageViewModel() { // 展开 - 加载分单数据 loadHaWbList(bean) } + else -> { + // 列表项点击 - 跳转详情页 + com.lukouguoji.gjj.activity.IntImpManifestDetailsActivity.start( + getTopActivity(), bean + ) + } } } diff --git a/module_gjj/src/main/res/layout/activity_int_imp_manifest_details.xml b/module_gjj/src/main/res/layout/activity_int_imp_manifest_details.xml new file mode 100644 index 0000000..9921cd6 --- /dev/null +++ b/module_gjj/src/main/res/layout/activity_int_imp_manifest_details.xml @@ -0,0 +1,293 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/module_gjj/src/main/res/layout/item_int_imp_manifest.xml b/module_gjj/src/main/res/layout/item_int_imp_manifest.xml index 190e5d8..543c902 100644 --- a/module_gjj/src/main/res/layout/item_int_imp_manifest.xml +++ b/module_gjj/src/main/res/layout/item_int_imp_manifest.xml @@ -37,6 +37,7 @@