diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index cca2a4f..932eace 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -383,6 +383,27 @@
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="userLandscape"/>
+
+
+
+
+
(view) {
-
- override fun onBind(item: Any?, position: Int) {
- val bean = getItemBean(item)!!
- binding.bean = bean
-
- binding.ivIcon.setOnClickListener {
- bean.checked.set(!bean.checked.get())
- }
- }
-
-}
\ No newline at end of file
+package com.lukouguoji.aerologic.page.gnj.move.stash.list
+
+import android.view.View
+import com.lukouguoji.aerologic.databinding.ItemGnjMoveStashListBinding
+import com.lukouguoji.gnj.page.yiku.handover.GnjYiKuHandoverActivity
+import com.lukouguoji.module_base.base.BaseViewHolder
+import com.lukouguoji.module_base.bean.MoveStashBean
+
+class GnjMoveStashListViewHolder(view: View) :
+ BaseViewHolder(view) {
+
+ override fun onBind(item: Any?, position: Int) {
+ val bean = getItemBean(item)!!
+ binding.bean = bean
+
+ binding.ivIcon.setOnClickListener {
+ bean.checked.set(!bean.checked.get())
+ }
+
+ // 点击列表项进入移交详情
+ binding.ll.setOnClickListener {
+ GnjYiKuHandoverActivity.startForDetails(itemView.context, bean.mawbId)
+ }
+
+ // 侧滑菜单 - 编辑按钮
+ binding.btnEdit.setOnClickListener {
+ binding.swipeMenu.quickClose()
+ GnjYiKuHandoverActivity.startForEdit(itemView.context, bean.mawbId)
+ }
+ }
+}
diff --git a/app/src/main/res/layout/item_gnj_move_stash_list.xml b/app/src/main/res/layout/item_gnj_move_stash_list.xml
index 88824cf..7175955 100644
--- a/app/src/main/res/layout/item_gnj_move_stash_list.xml
+++ b/app/src/main/res/layout/item_gnj_move_stash_list.xml
@@ -1,245 +1,279 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/module_base/src/main/java/com/lukouguoji/module_base/bean/GjAccidentVisaEditBean.kt b/module_base/src/main/java/com/lukouguoji/module_base/bean/GjAccidentVisaEditBean.kt
index bb565fc..bb92e2e 100644
--- a/module_base/src/main/java/com/lukouguoji/module_base/bean/GjAccidentVisaEditBean.kt
+++ b/module_base/src/main/java/com/lukouguoji/module_base/bean/GjAccidentVisaEditBean.kt
@@ -10,12 +10,12 @@ class GjAccidentVisaEditBean {
var dpc: String = "" // 不正常件数
var pc: String = "" // 运单总件数
var weight: String = "" // 运单总重量
- var reweight: String = "" // 复称重量
+ var reWeight: String = "" // 复称重量
var goods: String = "" // 品名
var opacking: String = "" // 外包装
var damage: String = "" // 包装破损情况
var condition: String = "" // 内容物情况
- var problem: String = "" // 不正常类型
+ var kdamage: String = "" // 不正常类型
var seachDate: String = "" // 发现时间
var photo: String = "" // 图片是否留底
var remarks: String = "" // 备注
diff --git a/module_base/src/main/java/com/lukouguoji/module_base/bean/GnjYiKuBean.kt b/module_base/src/main/java/com/lukouguoji/module_base/bean/GnjYiKuBean.kt
index 9d81e23..3edb0a6 100644
--- a/module_base/src/main/java/com/lukouguoji/module_base/bean/GnjYiKuBean.kt
+++ b/module_base/src/main/java/com/lukouguoji/module_base/bean/GnjYiKuBean.kt
@@ -16,14 +16,19 @@ class GnjYiKuBean : ICheck {
var agentCode: String = "" // 代理人
var goods: String = "" // 品名
var flight: String = "" // 进港航班(格式: 20240712/MU2023)
- var route: String = "" // 航程(格式: LAX-PEK-HFE)
+ var route: String = "" // 航程(格式: LAX-PEK-HFE)(旧接口字段)
+ var range: String = "" // 航程(格式: LAX-PEK-HFE)(GnjMawb 接口字段)
var origin: String = "" // 始发港
var dest: String = "" // 目的港
var awbType: String = "" // 运单类型(转国际进港/转国内出港等)
- var telegramNo: String = "" // 电报号
+ var telegramNo: String = "" // 电报号(旧接口字段)
+ var telegramId: String = "" // 电报号(GnjMawb 接口字段)
var remark: String = "" // 备注
var handoverStatus: String = "" // 移交状态(未移交/已移交)
var images: String = "" // 交接图片(逗号分隔的URL列表)
+ var originalPic: String = "" // 交接图片原图地址
+ var pic: String = "" // 交接图片缩略图
+ var picNumber: String = "" // 交接图片数量
var fdate: String = "" // 航班日期
var fno: String = "" // 航班号
var businessType: String = "" // 业务类型
@@ -41,10 +46,17 @@ class GnjYiKuBean : ICheck {
* 获取图片列表
*/
fun getImageList(): List {
- return if (images.isNotEmpty()) {
- images.split(",").filter { it.isNotEmpty() }
+ val source = originalPic.ifEmpty { images }
+ return if (source.isNotEmpty()) {
+ source.split(",").filter { it.isNotEmpty() }
} else {
emptyList()
}
}
+
+ /** 获取航程(兼容新旧接口) */
+ fun getRouteDisplay(): String = range.ifEmpty { route }
+
+ /** 获取电报号(兼容新旧接口) */
+ fun getTelegramDisplay(): String = telegramId.ifEmpty { telegramNo }
}
diff --git a/module_base/src/main/java/com/lukouguoji/module_base/bean/IntImpAccidentVisaBean.kt b/module_base/src/main/java/com/lukouguoji/module_base/bean/IntImpAccidentVisaBean.kt
index 9689230..c9ce499 100644
--- a/module_base/src/main/java/com/lukouguoji/module_base/bean/IntImpAccidentVisaBean.kt
+++ b/module_base/src/main/java/com/lukouguoji/module_base/bean/IntImpAccidentVisaBean.kt
@@ -12,8 +12,8 @@ class IntImpAccidentVisaBean {
var totalPc: Int = 0 // 运单总件数
var totalWeight: Double = 0.0 // 运单总重量
var abnPc: Int = 0 // 不正常件数
- var opName: String = "" // 经办人
- var opDate: String = "" // 经办时间
+ var opId: String = "" // 经办人
+ var opdate: String = "" // 经办时间
val checked: ObservableBoolean = ObservableBoolean(false)
diff --git a/module_base/src/main/java/com/lukouguoji/module_base/http/net/Api.kt b/module_base/src/main/java/com/lukouguoji/module_base/http/net/Api.kt
index 4f18e5e..3968ae7 100644
--- a/module_base/src/main/java/com/lukouguoji/module_base/http/net/Api.kt
+++ b/module_base/src/main/java/com/lukouguoji/module_base/http/net/Api.kt
@@ -1744,6 +1744,18 @@ interface Api {
@POST("DomImpMove/save")
suspend fun saveGnjYiKu(@Body data: RequestBody): BaseResultBean
+ /**
+ * 获取-国内进港移库-详情(新接口)
+ */
+ @GET("DomImpMove/detail")
+ suspend fun getGnjMoveStashDetail(@Query("mawbId") mawbId: String): BaseResultBean
+
+ /**
+ * 编辑-国内进港移库(新接口)
+ */
+ @POST("DomImpMove/modify")
+ suspend fun modifyGnjMoveStash(@Body data: RequestBody): BaseResultBean
+
/**
* 执行-国内进港移库操作
*/
diff --git a/module_base/src/main/java/com/lukouguoji/module_base/impl/ImageSelectNewViewHolder.kt b/module_base/src/main/java/com/lukouguoji/module_base/impl/ImageSelectNewViewHolder.kt
new file mode 100644
index 0000000..5fbaca1
--- /dev/null
+++ b/module_base/src/main/java/com/lukouguoji/module_base/impl/ImageSelectNewViewHolder.kt
@@ -0,0 +1,66 @@
+package com.lukouguoji.module_base.impl
+
+import android.view.View
+import android.view.ViewTreeObserver
+import com.lukouguoji.module_base.adapter.loadImage
+import com.lukouguoji.module_base.base.BaseViewHolder
+import com.lukouguoji.module_base.bean.FileBean
+import com.lukouguoji.module_base.databinding.ItemImageSelectNewBinding
+import com.lukouguoji.module_base.ktx.commonAdapter
+import com.lukouguoji.module_base.ktx.logd
+import com.lukouguoji.module_base.ktx.loge
+import com.lukouguoji.module_base.ui.page.preview.PreviewActivity
+import com.lukouguoji.module_base.util.MediaUtil
+
+class ImageSelectNewViewHolder(view: View) : BaseViewHolder(view) {
+
+ override fun onBind(item: Any?, position: Int) {
+ val bean = getItemBean(item)!!
+ binding.bean = bean
+
+ // 让高度等于宽度,实现正方形
+ binding.rl.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
+ override fun onGlobalLayout() {
+ binding.rl.viewTreeObserver.removeOnGlobalLayoutListener(this)
+ val width = binding.rl.width
+ if (width > 0 && binding.rl.height != width) {
+ val lp = binding.rl.layoutParams
+ lp.height = width
+ binding.rl.layoutParams = lp
+ }
+ }
+ })
+
+ binding.rl.setOnClickListener {
+ if (bean.path.isEmpty()) {
+ MediaUtil.pickImage(itemView.context, maxNum = 10) { results ->
+ val adapter = getRecyclerView()?.commonAdapter() ?: return@pickImage
+ results.forEach { result ->
+ logd("添加了图片 : ${result.realPath}")
+ // 在加号按钮(最后一项)之前插入图片
+ val insertPos = adapter.items.size - 1
+ adapter.items.add(insertPos, FileBean(path = result.realPath))
+ adapter.notifyItemInserted(insertPos)
+ }
+ }
+ } else {
+ PreviewActivity.start(itemView.context, listOf(bean))
+ }
+ }
+
+ // 长按事件
+ binding.rl.setOnLongClickListener {
+ clickListener?.onItemClick(bindingAdapterPosition, binding.rl.id)
+ true
+ }
+
+ notifyItemClick(position, binding.ivDelete)
+
+ if (bean.isOnlineResource()) {
+ loge("开始下载 : ${bean.path}")
+ bean.download {
+ loadImage(binding.iv, it)
+ }
+ }
+ }
+}
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 d2c53de..ff0003c 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
@@ -106,6 +106,7 @@ object ARouterConstants {
const val ACTIVITY_URL_GNJ_YIKU_LIST = "/gnj/GnjYiKuListActivity" //国内进港 移库列表
const val ACTIVITY_URL_GNJ_YIKU_DETAILS = "/gnj/GnjYiKuDetailsActivity" //国内进港 移库详情
const val ACTIVITY_URL_GNJ_YIKU_EDIT = "/gnj/GnjYiKuEditActivity" //国内进港 移库编辑
+ const val ACTIVITY_URL_GNJ_YIKU_HANDOVER = "/gnj/GnjYiKuHandoverActivity" //国内进港 移交编辑/详情
///////////////// 国际出港模块
/**
diff --git a/module_base/src/main/res/layout/item_image_select_new.xml b/module_base/src/main/res/layout/item_image_select_new.xml
new file mode 100644
index 0000000..3c51301
--- /dev/null
+++ b/module_base/src/main/res/layout/item_image_select_new.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpAccidentVisaEditViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpAccidentVisaEditViewModel.kt
index 9fc44a7..035fc9a 100644
--- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpAccidentVisaEditViewModel.kt
+++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/IntImpAccidentVisaEditViewModel.kt
@@ -14,7 +14,7 @@ import com.lukouguoji.module_base.common.ConstantEvent
import com.lukouguoji.module_base.common.DetailsPageType
import com.lukouguoji.module_base.http.net.NetApply
import com.lukouguoji.module_base.impl.FlowBus
-import com.lukouguoji.module_base.impl.ImageSelectViewHolder
+import com.lukouguoji.module_base.impl.ImageSelectNewViewHolder
import com.lukouguoji.module_base.interfaces.IOnItemClickListener
import com.lukouguoji.module_base.ktx.commonAdapter
import com.lukouguoji.module_base.ktx.formatDate
@@ -51,8 +51,8 @@ class IntImpAccidentVisaEditViewModel : BaseViewModel(), IOnItemClickListener {
val dataBean = MutableLiveData(GjAccidentVisaEditBean())
// 图片列表
- val itemLayoutId = R.layout.item_image_select
- val itemViewHolder = ImageSelectViewHolder::class.java
+ val itemLayoutId = R.layout.item_image_select_new
+ val itemViewHolder = ImageSelectNewViewHolder::class.java
var rv: RecyclerView? = null
// 下拉列表
@@ -73,6 +73,8 @@ class IntImpAccidentVisaEditViewModel : BaseViewModel(), IOnItemClickListener {
// 是否为详情模式(只读)
val isDetailMode = MutableLiveData(false)
+ // 详情模式下无图片时显示占位提示
+ val showNoImage = MutableLiveData(false)
fun initOnCreate(intent: Intent) {
id = intent.getLongExtra(Constant.Key.ID, 0)
@@ -156,6 +158,11 @@ class IntImpAccidentVisaEditViewModel : BaseViewModel(), IOnItemClickListener {
}
}
rv?.commonAdapter()?.loadMore(picList)
+
+ // 详情模式下无图片时显示占位提示
+ if (isDetailMode.value == true && picList.isEmpty()) {
+ showNoImage.value = true
+ }
}
}
}
diff --git a/module_gjj/src/main/res/layout/activity_int_imp_accident_visa_edit.xml b/module_gjj/src/main/res/layout/activity_int_imp_accident_visa_edit.xml
index 65e7ae4..28b3c44 100644
--- a/module_gjj/src/main/res/layout/activity_int_imp_accident_visa_edit.xml
+++ b/module_gjj/src/main/res/layout/activity_int_imp_accident_visa_edit.xml
@@ -185,7 +185,7 @@
title='@{"复称重量"}'
titleLength="@{6}"
type="@{DataLayoutType.INPUT}"
- value='@={viewModel.dataBean.reweight}' />
+ value='@={viewModel.dataBean.reWeight}' />
+ value='@={viewModel.dataBean.kdamage}' />
@@ -339,8 +339,21 @@
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
- app:spanCount="4"
- tools:listitem="@layout/item_image_select" />
+ app:spanCount="6"
+ tools:listitem="@layout/item_image_select_new" />
+
+
+
@@ -284,7 +284,7 @@
diff --git a/module_gnj/src/main/java/com/lukouguoji/gnj/page/yiku/handover/GnjYiKuHandoverActivity.kt b/module_gnj/src/main/java/com/lukouguoji/gnj/page/yiku/handover/GnjYiKuHandoverActivity.kt
new file mode 100644
index 0000000..ecd9919
--- /dev/null
+++ b/module_gnj/src/main/java/com/lukouguoji/gnj/page/yiku/handover/GnjYiKuHandoverActivity.kt
@@ -0,0 +1,64 @@
+package com.lukouguoji.gnj.page.yiku.handover
+
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
+import com.alibaba.android.arouter.facade.annotation.Route
+import com.lukouguoji.gnj.R
+import com.lukouguoji.gnj.databinding.ActivityGnjYikuHandoverBinding
+import com.lukouguoji.module_base.base.BaseBindingActivity
+import com.lukouguoji.module_base.common.Constant
+import com.lukouguoji.module_base.common.DetailsPageType
+import com.lukouguoji.module_base.ktx.addOnItemClickListener
+import com.lukouguoji.module_base.ktx.commonAdapter
+import com.lukouguoji.module_base.router.ARouterConstants
+
+/**
+ * 国内进港移交编辑/详情页
+ */
+@Route(path = ARouterConstants.ACTIVITY_URL_GNJ_YIKU_HANDOVER)
+class GnjYiKuHandoverActivity :
+ BaseBindingActivity() {
+
+ override fun layoutId() = R.layout.activity_gnj_yiku_handover
+
+ override fun viewModelClass() = GnjYiKuHandoverViewModel::class.java
+
+ override fun initOnCreate(savedInstanceState: Bundle?) {
+ viewModel.initOnCreated(intent)
+
+ when (viewModel.pageType.value) {
+ DetailsPageType.Modify -> setBackArrow("国内进港移交编辑")
+ DetailsPageType.Details -> setBackArrow("国内进港移交详情")
+ else -> setBackArrow("国内进港移交")
+ }
+
+ binding.viewModel = viewModel
+
+ // 绑定图片列表点击事件(编辑模式下可删除图片)
+ binding.rvImages.addOnItemClickListener(viewModel)
+
+ // 监听图片列表变化并更新 adapter
+ viewModel.imageList.observe(this) { images ->
+ binding.rvImages.commonAdapter()?.refresh(images)
+ }
+ }
+
+ companion object {
+ @JvmStatic
+ fun startForEdit(context: Context, id: String) {
+ val starter = Intent(context, GnjYiKuHandoverActivity::class.java)
+ .putExtra(Constant.Key.PAGE_TYPE, DetailsPageType.Modify.name)
+ .putExtra(Constant.Key.ID, id)
+ context.startActivity(starter)
+ }
+
+ @JvmStatic
+ fun startForDetails(context: Context, id: String) {
+ val starter = Intent(context, GnjYiKuHandoverActivity::class.java)
+ .putExtra(Constant.Key.PAGE_TYPE, DetailsPageType.Details.name)
+ .putExtra(Constant.Key.ID, id)
+ context.startActivity(starter)
+ }
+ }
+}
diff --git a/module_gnj/src/main/java/com/lukouguoji/gnj/page/yiku/handover/GnjYiKuHandoverViewModel.kt b/module_gnj/src/main/java/com/lukouguoji/gnj/page/yiku/handover/GnjYiKuHandoverViewModel.kt
new file mode 100644
index 0000000..a96b63d
--- /dev/null
+++ b/module_gnj/src/main/java/com/lukouguoji/gnj/page/yiku/handover/GnjYiKuHandoverViewModel.kt
@@ -0,0 +1,136 @@
+package com.lukouguoji.gnj.page.yiku.handover
+
+import android.content.Intent
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.viewModelScope
+import com.lukouguoji.gnj.R
+import com.lukouguoji.module_base.base.BaseViewModel
+import com.lukouguoji.module_base.bean.FileBean
+import com.lukouguoji.module_base.bean.GnjYiKuBean
+import com.lukouguoji.module_base.common.Constant
+import com.lukouguoji.module_base.common.ConstantEvent
+import com.lukouguoji.module_base.common.DetailsPageType
+import com.lukouguoji.module_base.http.net.NetApply
+import com.lukouguoji.module_base.impl.FlowBus
+import com.lukouguoji.module_base.impl.ImageSelectNewViewHolder
+import com.lukouguoji.module_base.interfaces.IOnItemClickListener
+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.util.UploadUtil
+import kotlinx.coroutines.launch
+
+/**
+ * 国内进港移交编辑/详情 ViewModel
+ */
+class GnjYiKuHandoverViewModel : BaseViewModel(), IOnItemClickListener {
+
+ val pageType = MutableLiveData(DetailsPageType.Modify)
+ var mawbId = ""
+
+ val dataBean = MutableLiveData(GnjYiKuBean())
+
+ // 图片列表
+ val imageList = MutableLiveData>(mutableListOf())
+
+ // 图片适配器配置
+ val imageItemLayoutId = R.layout.item_image_select_new
+ val imageItemViewHolder = ImageSelectNewViewHolder::class.java
+
+ // 详情模式下无图片时显示占位提示
+ val showNoImage = MutableLiveData(false)
+
+ fun initOnCreated(intent: Intent) {
+ pageType.value = DetailsPageType.valueOf(
+ intent.getStringExtra(Constant.Key.PAGE_TYPE) ?: DetailsPageType.Modify.name
+ )
+ mawbId = intent.getStringExtra(Constant.Key.ID) ?: ""
+ loadData()
+ }
+
+ private fun loadData() {
+ launchLoadingCollect({
+ NetApply.api.getGnjMoveStashDetail(mawbId)
+ }) {
+ onSuccess = {
+ val bean = it.data ?: GnjYiKuBean()
+ dataBean.value = bean
+
+ // 处理图片列表
+ val images = bean.getImageList().map { url ->
+ FileBean(path = url)
+ }.toMutableList()
+
+ // 编辑模式添加空 FileBean 用于显示"添加照片"按钮
+ if (pageType.value == DetailsPageType.Modify) {
+ images.add(FileBean())
+ }
+
+ imageList.value = images
+
+ // 详情模式下无图片时显示占位提示
+ if (pageType.value == DetailsPageType.Details && bean.getImageList().isEmpty()) {
+ showNoImage.value = true
+ }
+ }
+ }
+ }
+
+ /**
+ * 提交保存(只保存备注和图片)
+ */
+ fun submit() {
+ val bean = dataBean.value ?: return
+
+ // 获取所有非空图片
+ val images = imageList.value!!.filter { it.path.isNotEmpty() }
+
+ if (images.size > 7) {
+ showToast("最多上传7张图片")
+ return
+ }
+
+ launchLoadingCollect({
+ // 上传图片
+ val uploadedUrls = mutableListOf()
+ images.forEach { fileBean ->
+ if (fileBean.path.startsWith("http")) {
+ uploadedUrls.add(fileBean.path)
+ } else {
+ val result = UploadUtil.upload(fileBean.path)
+ if (result.verifySuccess()) {
+ uploadedUrls.add(result.data?.newName ?: "")
+ }
+ }
+ }
+
+ // 提交(只更新备注和图片)
+ val params = mapOf(
+ "mawbId" to mawbId,
+ "remark" to bean.remark,
+ "originalPic" to uploadedUrls.joinToString(","),
+ ).toRequestBody(removeEmptyOrNull = true)
+
+ NetApply.api.modifyGnjMoveStash(params)
+ }) {
+ onSuccess = {
+ showToast("保存成功")
+ viewModelScope.launch {
+ FlowBus.with(ConstantEvent.EVENT_REFRESH_GNJ_YIKU_LIST).emit("refresh")
+ }
+ getTopActivity().finish()
+ }
+ }
+ }
+
+ /**
+ * 处理图片删除点击事件
+ */
+ override fun onItemClick(position: Int, type: Int) {
+ val list = imageList.value!!
+ if (type == R.id.iv_delete && position < list.size) {
+ list.removeAt(position)
+ imageList.value = list
+ }
+ }
+}
diff --git a/module_gnj/src/main/java/com/lukouguoji/gnj/page/yiku/list/GnjYiKuListViewHolder.kt b/module_gnj/src/main/java/com/lukouguoji/gnj/page/yiku/list/GnjYiKuListViewHolder.kt
index 60c25c2..1d3f9d7 100644
--- a/module_gnj/src/main/java/com/lukouguoji/gnj/page/yiku/list/GnjYiKuListViewHolder.kt
+++ b/module_gnj/src/main/java/com/lukouguoji/gnj/page/yiku/list/GnjYiKuListViewHolder.kt
@@ -1,23 +1,35 @@
-package com.lukouguoji.gnj.page.yiku.list
-
-import android.view.View
-import com.lukouguoji.gnj.databinding.ItemGnjYikuListBinding
-import com.lukouguoji.module_base.base.BaseViewHolder
-import com.lukouguoji.module_base.bean.GnjYiKuBean
-
-/**
- * 国内进港移库列表 ViewHolder
- */
-class GnjYiKuListViewHolder(view: View) :
- BaseViewHolder(view) {
-
- override fun onBind(item: Any?, position: Int) {
- val bean = getItemBean(item)!!
- binding.bean = bean
-
- // 点击checkbox切换选中状态
- binding.ivIcon.setOnClickListener {
- bean.checked.set(!bean.checked.get())
- }
- }
-}
+package com.lukouguoji.gnj.page.yiku.list
+
+import android.view.View
+import com.lukouguoji.gnj.databinding.ItemGnjYikuListBinding
+import com.lukouguoji.gnj.page.yiku.handover.GnjYiKuHandoverActivity
+import com.lukouguoji.module_base.base.BaseViewHolder
+import com.lukouguoji.module_base.bean.GnjYiKuBean
+
+/**
+ * 国内进港移库列表 ViewHolder
+ */
+class GnjYiKuListViewHolder(view: View) :
+ BaseViewHolder(view) {
+
+ override fun onBind(item: Any?, position: Int) {
+ val bean = getItemBean(item)!!
+ binding.bean = bean
+
+ // 点击 checkbox 切换选中状态
+ binding.ivIcon.setOnClickListener {
+ bean.checked.set(!bean.checked.get())
+ }
+
+ // 点击列表项进入移交详情
+ binding.ll.setOnClickListener {
+ GnjYiKuHandoverActivity.startForDetails(itemView.context, bean.id)
+ }
+
+ // 侧滑菜单 - 编辑按钮
+ binding.btnEdit.setOnClickListener {
+ binding.swipeMenu.quickClose()
+ GnjYiKuHandoverActivity.startForEdit(itemView.context, bean.id)
+ }
+ }
+}
diff --git a/module_gnj/src/main/res/layout/activity_gnj_yiku_handover.xml b/module_gnj/src/main/res/layout/activity_gnj_yiku_handover.xml
new file mode 100644
index 0000000..8708842
--- /dev/null
+++ b/module_gnj/src/main/res/layout/activity_gnj_yiku_handover.xml
@@ -0,0 +1,268 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/module_gnj/src/main/res/layout/item_gnj_yiku_list.xml b/module_gnj/src/main/res/layout/item_gnj_yiku_list.xml
index f506515..e391445 100644
--- a/module_gnj/src/main/res/layout/item_gnj_yiku_list.xml
+++ b/module_gnj/src/main/res/layout/item_gnj_yiku_list.xml
@@ -1,267 +1,301 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+