多图片上传优化

This commit is contained in:
2025-11-21 14:37:54 +08:00
parent 88e841f212
commit 10475831fa
4 changed files with 36 additions and 7 deletions
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import android.graphics.Bitmap
import android.net.Uri
import android.os.Bundle
import android.util.Log
import androidx.activity.ComponentActivity
import androidx.activity.viewModels
import androidx.camera.view.PreviewView
@@ -33,6 +34,8 @@ import com.sw.inbound.utils.ext.clickWithDebounce
import com.sw.inbound.utils.ext.dp
import com.sw.inbound.utils.ext.gone
import com.sw.inbound.utils.ext.hideKeyboard
import com.sw.inbound.utils.ext.invisible
import com.sw.inbound.utils.ext.toObject
import com.sw.inbound.utils.ext.toast
import com.sw.inbound.utils.ext.visible
import com.sw.inbound.viewmodel.ReceiptViewModel
@@ -124,7 +127,7 @@ class FoodCollectionActivity : ComponentActivity() {
}
}
binding.btnSave.setOnClickListener {
binding.btnSave.setOnClickListener { _ ->
if (clickIndex == -1) {
toast("请选择物品名称")
return@setOnClickListener
@@ -141,7 +144,13 @@ class FoodCollectionActivity : ComponentActivity() {
return@setOnClickListener
}
viewModel.uploadMultipleImages(goods.id!!, goods.goodsName!!, files) {
Timber.tag(TAG).d("uploadMultipleImages: ${it}")
//{"code":"00000","data":null,"msg":"成功","total":0}
val resp = it?.toObject<RespData>()
val isSuccess = resp?.code == "00000"
binding.ivFinish.run {
if (isSuccess) visible() else invisible()
}
}
}
binding.btnTakePhoto.clickWithDebounce {
@@ -234,6 +243,7 @@ class FoodCollectionActivity : ComponentActivity() {
searchGoodsList.clear()
searchAdapter.notifyDataSetChanged()
loadEmptyView()
binding.ivFinish.invisible()
}
private val cameraCallback: (Uri) -> Unit = { uri ->
@@ -382,4 +392,9 @@ class FoodCollectionActivity : ComponentActivity() {
}
}
data class RespData(
var code:String?=null,
var data:String?=null,
var msg:String?=null,
)
}
@@ -159,9 +159,9 @@ interface ApiService {
@Multipart
@POST
suspend fun uploadMultipleImages(
@Url url: String = "${GlobalData.appBaseUrl}/neglect/inboundWeighingScale/add",
@PartMap params: Map<String, RequestBody>,
@Part parts: List<MultipartBody.Part>
@Url url: String = "${GlobalData.appBaseUrl}/terminal/neglect/inboundWeighingScale/add",
@PartMap params: HashMap<String, RequestBody>,
@Part goodsPics: List<MultipartBody.Part>
): ApiResponse<String>
/**
@@ -214,7 +214,7 @@ class RemoteRepository @Inject constructor(
}
suspend fun uploadMultipleImages(fileList: List<File>, param: Map<String, String>): ApiResponse<String> {
val paramsMap = mutableMapOf<String, RequestBody>()
val paramsMap = hashMapOf<String, RequestBody>()
param.forEach { (key, value) ->
paramsMap[key] = value.toRequestBody("text/plain".toMediaTypeOrNull())
}
@@ -232,7 +232,7 @@ class RemoteRepository @Inject constructor(
fileParts.add(filePart)
}
return safeApiCall {
apiService.uploadMultipleImages(params = paramsMap, parts = fileParts)
apiService.uploadMultipleImages(params = paramsMap, goodsPics = fileParts)
}
}
}
@@ -339,6 +339,20 @@
android:layout_height="match_parent"
android:layout_weight="1" />
<ImageView
android:id="@+id/ivFinish"
android:layout_width="30dp"
android:layout_height="30dp"
android:padding="5dp"
android:src="@mipmap/ic_finish"
android:visibility="invisible"/>
<Space
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<TextView
android:id="@+id/btnSave"
android:layout_width="270dp"