diff --git a/app/src/main/java/com/lukouguoji/aerologic/page/gnj/move/stash/list/GnjMoveStashListViewHolder.kt b/app/src/main/java/com/lukouguoji/aerologic/page/gnj/move/stash/list/GnjMoveStashListViewHolder.kt index 9050283..0304c4d 100644 --- a/app/src/main/java/com/lukouguoji/aerologic/page/gnj/move/stash/list/GnjMoveStashListViewHolder.kt +++ b/app/src/main/java/com/lukouguoji/aerologic/page/gnj/move/stash/list/GnjMoveStashListViewHolder.kt @@ -1,6 +1,7 @@ package com.lukouguoji.aerologic.page.gnj.move.stash.list import android.view.View +import android.widget.Toast import com.lukouguoji.aerologic.databinding.ItemGnjMoveStashListBinding import com.lukouguoji.gnj.page.yiku.handover.GnjYiKuHandoverActivity import com.lukouguoji.module_base.base.BaseViewHolder @@ -25,6 +26,10 @@ class GnjMoveStashListViewHolder(view: View) : // 侧滑菜单 - 编辑按钮 binding.btnEdit.setOnClickListener { binding.swipeMenu.quickClose() + if (bean.pickFlag == "1") { + Toast.makeText(itemView.context, "已出库,不可编辑", Toast.LENGTH_SHORT).show() + return@setOnClickListener + } 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 7175955..907131a 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 @@ -76,7 +76,7 @@ + + + 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 3edb0a6..27dc77e 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 @@ -34,6 +34,7 @@ class GnjYiKuBean : ICheck { var businessType: String = "" // 业务类型 var opDate: String = "" // 操作日期 var carrier: String = "" // 承运人 + var pickFlag: String = "" // 出库标志(1=已出库) // 多选状态绑定 val checked = ObservableBoolean(false) 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 c9ce499..b620fa7 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 @@ -6,12 +6,12 @@ class IntImpAccidentVisaBean { var id: Long = 0 var fdate: String = "" // 航班日期 var fno: String = "" // 航班号 - var fdep: String = "" // 始发站 - var fdest: String = "" // 目的站 + var dep: String = "" // 始发站 + var dest: String = "" // 目的站 var wbNo: String = "" // 运单号 - var totalPc: Int = 0 // 运单总件数 - var totalWeight: Double = 0.0 // 运单总重量 - var abnPc: Int = 0 // 不正常件数 + var pc: Int = 0 // 运单总件数 + var weight: Double = 0.0 // 运单总重量 + var dpc: Int = 0 // 不正常件数 var opId: String = "" // 经办人 var opdate: String = "" // 经办时间 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 index 3c51301..b4c8eee 100644 --- a/module_base/src/main/res/layout/item_image_select_new.xml +++ b/module_base/src/main/res/layout/item_image_select_new.xml @@ -13,7 +13,7 @@ android:layout_width="match_parent" android:layout_height="0dp" android:layout_margin="5dp" - android:background="@color/white"> + android:background="@{bean.path.length() == 0 ? @color/color_f2 : @color/white}"> + + + + + + + + + + + + - - - - - - - - @@ -107,7 +107,7 @@ @@ -142,7 +142,7 @@ @@ -205,7 +205,7 @@ @@ -227,7 +227,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 index ecd9919..d4d28f7 100644 --- 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 @@ -35,6 +35,9 @@ class GnjYiKuHandoverActivity : binding.viewModel = viewModel + // 绑定图片 RecyclerView 引用 + viewModel.rvImages = binding.rvImages + // 绑定图片列表点击事件(编辑模式下可删除图片) binding.rvImages.addOnItemClickListener(viewModel) 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 index a96b63d..b6f675e 100644 --- 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 @@ -14,9 +14,12 @@ 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.commonAdapter import com.lukouguoji.module_base.ktx.launchLoadingCollect import com.lukouguoji.module_base.ktx.showToast import com.lukouguoji.module_base.ktx.toRequestBody +import androidx.recyclerview.widget.RecyclerView +import com.lukouguoji.module_base.util.MediaUtil import com.lukouguoji.module_base.util.UploadUtil import kotlinx.coroutines.launch @@ -40,6 +43,9 @@ class GnjYiKuHandoverViewModel : BaseViewModel(), IOnItemClickListener { // 详情模式下无图片时显示占位提示 val showNoImage = MutableLiveData(false) + // 图片 RecyclerView 引用(用于从 adapter 实时获取图片) + var rvImages: RecyclerView? = null + fun initOnCreated(intent: Intent) { pageType.value = DetailsPageType.valueOf( intent.getStringExtra(Constant.Key.PAGE_TYPE) ?: DetailsPageType.Modify.name @@ -56,9 +62,9 @@ class GnjYiKuHandoverViewModel : BaseViewModel(), IOnItemClickListener { val bean = it.data ?: GnjYiKuBean() dataBean.value = bean - // 处理图片列表 + // 处理图片列表(拼接完整 URL) val images = bean.getImageList().map { url -> - FileBean(path = url) + FileBean(path = MediaUtil.fillUrl(url), url = url) }.toMutableList() // 编辑模式添加空 FileBean 用于显示"添加照片"按钮 @@ -82,8 +88,10 @@ class GnjYiKuHandoverViewModel : BaseViewModel(), IOnItemClickListener { fun submit() { val bean = dataBean.value ?: return - // 获取所有非空图片 - val images = imageList.value!!.filter { it.path.isNotEmpty() } + // 从 adapter 实时获取所有非空图片(ViewHolder 新增图片直接操作 adapter items) + val allItems = (rvImages?.commonAdapter()?.items as? List<*>) + ?.filterIsInstance() ?: imageList.value!! + val images = allItems.filter { it.path.isNotEmpty() } if (images.size > 7) { showToast("最多上传7张图片") @@ -94,8 +102,9 @@ class GnjYiKuHandoverViewModel : BaseViewModel(), IOnItemClickListener { // 上传图片 val uploadedUrls = mutableListOf() images.forEach { fileBean -> - if (fileBean.path.startsWith("http")) { - uploadedUrls.add(fileBean.path) + if (fileBean.url.isNotEmpty()) { + // 已上传的图片,直接用文件名 + uploadedUrls.add(fileBean.url) } else { val result = UploadUtil.upload(fileBean.path) if (result.verifySuccess()) { @@ -127,10 +136,11 @@ class GnjYiKuHandoverViewModel : BaseViewModel(), IOnItemClickListener { * 处理图片删除点击事件 */ 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 + if (type == R.id.iv_delete) { + val adapter = rvImages?.commonAdapter() ?: return + if (position < adapter.items.size) { + adapter.removeItem(position) + } } } } 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 index 8708842..bf195ae 100644 --- a/module_gnj/src/main/res/layout/activity_gnj_yiku_handover.xml +++ b/module_gnj/src/main/res/layout/activity_gnj_yiku_handover.xml @@ -26,8 +26,7 @@ - - - - - - + + android:layout_marginTop="15dp" + android:orientation="horizontal"> - + + + + + + + + + + + + + + - - - - - - - - -