diff --git a/module_base/src/main/java/com/lukouguoji/module_base/bean/GjjManifestBean.kt b/module_base/src/main/java/com/lukouguoji/module_base/bean/GjjManifestBean.kt index 73d9392..82d88dd 100644 --- a/module_base/src/main/java/com/lukouguoji/module_base/bean/GjjManifestBean.kt +++ b/module_base/src/main/java/com/lukouguoji/module_base/bean/GjjManifestBean.kt @@ -73,7 +73,10 @@ class GjjManifestBean( var wbNo: String = "", var weight: String = "", var storageTime: String = "", - var whslocation: String? = "" + var whslocation: String? = "", + var pic: String = "", + var originalPic: String = "", + var picNumber: String = "" ) : BaseObservable(), ICheck { // 展示逻辑 diff --git a/module_base/src/main/java/com/lukouguoji/module_base/common/Constant.kt b/module_base/src/main/java/com/lukouguoji/module_base/common/Constant.kt index d5398f5..f1c56d9 100644 --- a/module_base/src/main/java/com/lukouguoji/module_base/common/Constant.kt +++ b/module_base/src/main/java/com/lukouguoji/module_base/common/Constant.kt @@ -401,5 +401,8 @@ interface Constant { // 运单类型 const val AWB_TYPE = "awbType" + + const val PIC = "pic" + const val ORIGINAL_PIC = "originalPic" } } \ No newline at end of file diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/activity/GjjManifestDetailsActivity.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/activity/GjjManifestDetailsActivity.kt index 8fc6489..99626c0 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/activity/GjjManifestDetailsActivity.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/activity/GjjManifestDetailsActivity.kt @@ -2,12 +2,14 @@ package com.lukouguoji.gjj.activity import android.content.Context import android.content.Intent -import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import androidx.recyclerview.widget.LinearLayoutManager import com.lukouguoji.gjj.R import com.lukouguoji.gjj.databinding.ActivityGjjManifestDetailsBinding +import com.lukouguoji.gjj.holder.GjjManifestPicViewHolder import com.lukouguoji.gjj.viewModel.GjjManifestDetailsViewModel import com.lukouguoji.module_base.base.BaseBindingActivity +import com.lukouguoji.module_base.base.CommonAdapter import com.lukouguoji.module_base.common.Constant import com.lukouguoji.module_base.ktx.noNull @@ -21,17 +23,33 @@ class GjjManifestDetailsActivity : override fun initOnCreate(savedInstanceState: Bundle?) { setBackArrow("国际进港舱单详情") viewModel.id = intent.getStringExtra(Constant.Key.ID).noNull() + viewModel.pic = intent.getStringExtra(Constant.Key.PIC).noNull() + viewModel.originalPic = intent.getStringExtra(Constant.Key.ORIGINAL_PIC).noNull() binding.viewModel = viewModel + val picAdapter = CommonAdapter( + this, + R.layout.item_gjj_manifest_pic, + GjjManifestPicViewHolder::class.java + ) + binding.rvPic.layoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false) + binding.rvPic.adapter = picAdapter + + viewModel.picList.observe(this) { list -> + picAdapter.refresh(list) + } + viewModel.getData() } companion object { @JvmStatic - fun start(context: Context, id: String) { + fun start(context: Context, id: String, pic: String = "", originalPic: String = "") { val starter = Intent(context, GjjManifestDetailsActivity::class.java) .putExtra(Constant.Key.ID, id) + .putExtra(Constant.Key.PIC, pic) + .putExtra(Constant.Key.ORIGINAL_PIC, originalPic) context.startActivity(starter) } } diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/holder/GjjManifestPicViewHolder.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/holder/GjjManifestPicViewHolder.kt new file mode 100644 index 0000000..81c505d --- /dev/null +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/holder/GjjManifestPicViewHolder.kt @@ -0,0 +1,26 @@ +package com.lukouguoji.gjj.holder + +import android.view.View +import com.lukouguoji.gjj.databinding.ItemGjjManifestPicBinding +import com.lukouguoji.module_base.base.BaseViewHolder +import com.lukouguoji.module_base.bean.FileBean +import com.lukouguoji.module_base.ktx.commonAdapter +import com.lukouguoji.module_base.ui.page.preview.PreviewActivity + +class GjjManifestPicViewHolder(view: View) : + BaseViewHolder(view) { + + override fun onBind(item: Any?, position: Int) { + val bean = getItemBean(item)!! + binding.bean = bean + + binding.ivThumbnail.setOnClickListener { + val items = getRecyclerView()?.commonAdapter()?.items + ?.filterIsInstance() ?: listOf(bean) + val originalList = items.map { fb -> + FileBean(path = if (fb.originalPic.isNotEmpty()) fb.originalPic else fb.path) + } + PreviewActivity.start(itemView.context, originalList, position) + } + } +} diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestDetailsViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestDetailsViewModel.kt index 5db4d3f..2b9e05c 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestDetailsViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestDetailsViewModel.kt @@ -3,6 +3,7 @@ package com.lukouguoji.gjj.viewModel import android.view.View import androidx.lifecycle.MutableLiveData import com.lukouguoji.module_base.base.BaseViewModel +import com.lukouguoji.module_base.bean.FileBean import com.lukouguoji.module_base.http.net.NetApply import com.lukouguoji.module_base.interfaces.IGetData import com.lukouguoji.module_base.ktx.finish @@ -13,6 +14,7 @@ import com.lukouguoji.module_base.ktx.showToast import com.lukouguoji.module_base.ktx.toRequestBody import com.lukouguoji.module_base.ktx.verifyNullOrEmpty import com.lukouguoji.module_base.util.DictUtils +import com.lukouguoji.module_base.util.MediaUtil import dev.utils.app.info.KeyValue import dev.utils.common.DateUtils @@ -20,6 +22,11 @@ class GjjManifestDetailsViewModel : BaseViewModel(), IGetData { var id = "" var fid = "" + var pic = "" + var originalPic = "" + + // 交接图片列表 + val picList = MutableLiveData>(emptyList()) // 是否修改状态 var modifyAble = MutableLiveData(false) @@ -88,6 +95,7 @@ class GjjManifestDetailsViewModel : BaseViewModel(), IGetData { /////////////////////////////////////////////////////////////////////////// override fun getData() { + parsePicList() showLoading() launchCollect({ NetApply.api.getGjjManifestDetail(id) @@ -256,4 +264,21 @@ class GjjManifestDetailsViewModel : BaseViewModel(), IGetData { fun onCancelClick(view: View) { modifyAble.value = false } + + /** + * 解析 pic / originalPic 字符串为 FileBean 列表 + */ + fun parsePicList() { + val thumbUrls = pic.split(",").filter { it.isNotEmpty() } + val originalUrls = originalPic.split(",").filter { it.isNotEmpty() } + val list = thumbUrls.mapIndexed { index, thumbFile -> + val originalFile = originalUrls.getOrElse(index) { thumbFile } + FileBean( + path = MediaUtil.fillUrl(thumbFile), + url = thumbFile, + originalPic = MediaUtil.fillUrl(originalFile) + ) + } + picList.value = list + } } \ No newline at end of file diff --git a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestListViewModel.kt b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestListViewModel.kt index 629f6a6..93de192 100644 --- a/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestListViewModel.kt +++ b/module_gjj/src/main/java/com/lukouguoji/gjj/viewModel/GjjManifestListViewModel.kt @@ -243,7 +243,7 @@ class GjjManifestListViewModel : BasePageViewModel(), IOnItemClickListener { } R.id.tv_details -> { - GjjManifestDetailsActivity.start(DevUtils.getTopActivity(), bean.mfId) + GjjManifestDetailsActivity.start(DevUtils.getTopActivity(), bean.mfId, bean.pic, bean.originalPic) } R.id.tv_delete -> { diff --git a/module_gjj/src/main/res/layout/activity_gjj_manifest_details.xml b/module_gjj/src/main/res/layout/activity_gjj_manifest_details.xml index deddc68..80fe23e 100644 --- a/module_gjj/src/main/res/layout/activity_gjj_manifest_details.xml +++ b/module_gjj/src/main/res/layout/activity_gjj_manifest_details.xml @@ -432,6 +432,25 @@ + + + + + + + + + + + + + + + + + + +