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 16acade..663c594 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 @@ -144,20 +144,19 @@ class IntImpAccidentVisaEditViewModel : BaseViewModel(), IOnItemClickListener { onSuccess = { dataBean.value = it.data ?: GjAccidentVisaEditBean() - // 渲染图片 + // 渲染图片:path 取原图 URL 确保预览清晰,url 取缩略图用于提交 val bean = dataBean.value!! - val picList = bean.pic.split(",") - .filter { url -> url.isNotEmpty() } - .map { url -> FileBean(MediaUtil.fillUrl(url), url) } - val originalList = bean.originalPic.split(",") - .filter { url -> url.isNotEmpty() } - .map { url -> FileBean(MediaUtil.fillUrl(url)) } - for ((index, fileBean) in picList.withIndex()) { - if (index < originalList.size) { - picList[index].originalPic = originalList[index].path - } + val picList = bean.pic.split(",").filter { it.isNotEmpty() } + val originalList = bean.originalPic.split(",").filter { it.isNotEmpty() } + val images = picList.mapIndexed { index, picUrl -> + val originalUrl = originalList.getOrElse(index) { picUrl } + FileBean( + path = MediaUtil.fillUrl(originalUrl), + url = picUrl, + originalPic = originalUrl + ) } - rv?.commonAdapter()?.loadMore(picList) + rv?.commonAdapter()?.loadMore(images) // 详情模式下无图片时显示占位提示 if (isDetailMode.value == true && picList.isEmpty()) { @@ -292,8 +291,8 @@ class IntImpAccidentVisaEditViewModel : BaseViewModel(), IOnItemClickListener { val list = (rv?.commonAdapter()?.items as List) .filter { it.path.isNotEmpty() } bean.picNumber = list.size.toString() - bean.originalPic = list.joinToString(separator = ",") { MediaUtil.removeUrl(it.url) } - bean.pic = list.joinToString(separator = ",") { MediaUtil.removeUrl(it.originalPic) } + bean.pic = list.joinToString(separator = ",") { MediaUtil.removeUrl(it.url) } + bean.originalPic = list.joinToString(separator = ",") { MediaUtil.removeUrl(it.originalPic) } bean.idFlag = "1" if (pageType.value == DetailsPageType.Add) { 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 fde767c..28fc2e6 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 @@ -62,10 +62,23 @@ class GnjYiKuHandoverViewModel : BaseViewModel(), IOnItemClickListener { val bean = it.data ?: GnjYiKuBean() dataBean.value = bean - // 处理图片列表(拼接完整 URL) - val images = bean.getImageList().map { url -> - FileBean(path = MediaUtil.fillUrl(url), url = url) - }.toMutableList() + // 处理图片列表(同时保留缩略图和原图信息,确保二次编辑时不丢失) + val picList = bean.pic.split(",").filter { it.isNotEmpty() } + val originalPicList = bean.originalPic.split(",").filter { it.isNotEmpty() } + val images = if (picList.isNotEmpty()) { + picList.mapIndexed { index, picUrl -> + val originalUrl = originalPicList.getOrElse(index) { picUrl } + FileBean( + path = MediaUtil.fillUrl(originalUrl), + url = picUrl, + originalPic = originalUrl + ) + }.toMutableList() + } else { + originalPicList.map { url -> + FileBean(path = MediaUtil.fillUrl(url), url = url, originalPic = url) + }.toMutableList() + } // 编辑模式添加空 FileBean 用于显示"添加照片"按钮 if (pageType.value == DetailsPageType.Modify) { @@ -75,7 +88,7 @@ class GnjYiKuHandoverViewModel : BaseViewModel(), IOnItemClickListener { imageList.value = images // 详情模式下无图片时显示占位提示 - if (pageType.value == DetailsPageType.Details && bean.getImageList().isEmpty()) { + if (pageType.value == DetailsPageType.Details && images.isEmpty()) { showNoImage.value = true } }