From 7ffda3b24ba5d80bfaad1767718a5f4769372ca0 Mon Sep 17 00:00:00 2001 From: zxj <275873859@qq.com> Date: Thu, 14 Aug 2025 14:31:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AF=86=E5=88=AB=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/sw/inbound/di/NetworkModule.kt | 4 ++-- .../inbound/ui/page/ReceiptProductScreen.kt | 4 +++- .../inbound/ui/page/SelfProcurementScreen.kt | 13 +++++++--- .../com/sw/inbound/ui/weight/IdentityView.kt | 24 +++++++++++++++---- .../com/sw/inbound/viewmodel/BaseViewModel.kt | 1 + 5 files changed, 36 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/sw/inbound/di/NetworkModule.kt b/app/src/main/java/com/sw/inbound/di/NetworkModule.kt index 55a86d0..a5f04b0 100644 --- a/app/src/main/java/com/sw/inbound/di/NetworkModule.kt +++ b/app/src/main/java/com/sw/inbound/di/NetworkModule.kt @@ -20,8 +20,8 @@ import javax.inject.Singleton object NetworkModule { // private const val BASE_URL = "https://127.0.0.1" -// private const val BASE_URL = "https://yyjk.shuziweidao.com/gateway/" - private const val BASE_URL = "http://192.168.1.237:9002/" + private const val BASE_URL = "https://yyjk.shuziweidao.com/gateway/" +// private const val BASE_URL = "http://192.168.1.237:9002/" // private const val BASE_URL = "https://vip.shuziweidao.com/gateway/" private const val TIME_OUT = 30L // 超时时间(秒) diff --git a/app/src/main/java/com/sw/inbound/ui/page/ReceiptProductScreen.kt b/app/src/main/java/com/sw/inbound/ui/page/ReceiptProductScreen.kt index effe5c9..0c7d710 100644 --- a/app/src/main/java/com/sw/inbound/ui/page/ReceiptProductScreen.kt +++ b/app/src/main/java/com/sw/inbound/ui/page/ReceiptProductScreen.kt @@ -66,6 +66,7 @@ import com.sw.inbound.ui.weight.CustomSpinner import com.sw.inbound.ui.weight.CustomTextField import com.sw.inbound.ui.weight.IdentityView import com.sw.inbound.ui.weight.InputType +import com.sw.inbound.ui.weight.PageType import com.sw.inbound.ui.weight.ReceiptUnadjustedListView import com.sw.inbound.ui.weight.RowInputLayout import com.sw.inbound.ui.weight.TopTitleBar @@ -523,7 +524,8 @@ fun ReceiptRightView(modifier: Modifier = Modifier, viewModel: ReceiptViewModel) IdentityView( showSearchView = false, onOptionSelected = {}, - baseViewModel = viewModel + baseViewModel = viewModel, + pageType = PageType.RECEIPT_PRODUCT ) } else { ReceiptProductEditView(viewModel) diff --git a/app/src/main/java/com/sw/inbound/ui/page/SelfProcurementScreen.kt b/app/src/main/java/com/sw/inbound/ui/page/SelfProcurementScreen.kt index 8b6e87b..e24c01a 100644 --- a/app/src/main/java/com/sw/inbound/ui/page/SelfProcurementScreen.kt +++ b/app/src/main/java/com/sw/inbound/ui/page/SelfProcurementScreen.kt @@ -66,6 +66,7 @@ import com.sw.inbound.ui.weight.CustomSpinner import com.sw.inbound.ui.weight.CustomTextField import com.sw.inbound.ui.weight.IdentityView import com.sw.inbound.ui.weight.InputType +import com.sw.inbound.ui.weight.PageType import com.sw.inbound.ui.weight.RowInputLayout import com.sw.inbound.ui.weight.SelfProcurementListItem import com.sw.inbound.ui.weight.TopTitleBar @@ -179,9 +180,9 @@ private fun ContentView( private fun ContentLeftView( viewModel: SelfProcurementViewModel ) { - val warehouseList = GlobalData.warehouseTypeList // productViewModel.getStoreList() + val warehouseList = GlobalData.warehouseTypeList val productList by viewModel.purchaseList.collectAsState() - val globalWarehouseName by viewModel.globalWarehouse.collectAsState() // remember { mutableStateOf("选择仓库") } + val globalWarehouseName by viewModel.globalWarehouse.collectAsState() Column( modifier = Modifier @@ -267,7 +268,11 @@ fun ProductIdentification(viewModel: SelfProcurementViewModel) { // 菜品识别 IdentityView(showSearchView = true, onOptionSelected = { viewModel.updateSelectedItemWithSearch(it) - }, checkedItem = selectedItem, baseViewModel = viewModel) + }, + checkedItem = selectedItem, + baseViewModel = viewModel, + pageType = PageType.SELF_PROCUREMENT + ) } Spacer(modifier = Modifier.height(10.dp)) Row( @@ -878,6 +883,8 @@ private fun SelfProductEditView( // ToastUtils.showToast("数量和金额不符,请检查后再试") // return@CustomButton // } + viewModel.updateLastPhotoUri(null) + viewModel.updateIdentityList(emptyList()) viewModel.addPurchaseItem(selectedItem!!) }) } diff --git a/app/src/main/java/com/sw/inbound/ui/weight/IdentityView.kt b/app/src/main/java/com/sw/inbound/ui/weight/IdentityView.kt index 6f58b26..9a7c06d 100644 --- a/app/src/main/java/com/sw/inbound/ui/weight/IdentityView.kt +++ b/app/src/main/java/com/sw/inbound/ui/weight/IdentityView.kt @@ -32,6 +32,18 @@ import com.sw.inbound.utils.rememberPhotoCapture import com.sw.inbound.viewmodel.BaseViewModel import timber.log.Timber +enum class PageType { + /** + * 自采 + */ + SELF_PROCUREMENT, + + /** + * 收货 + */ + RECEIPT_PRODUCT +} + /** * 菜品识别组件 */ @@ -41,11 +53,13 @@ fun IdentityView( onOptionSelected: (SearchGoodsInfo.Record) -> Unit = {}, checkedItem: PurchaseWarehouseParam? = null, baseViewModel: BaseViewModel, + pageType: PageType ) { val context = LocalContext.current val lifecycleOwner = LocalLifecycleOwner.current val weightInfo by baseViewModel.weightInfo.collectAsState() val identityList by baseViewModel.identityListItems.collectAsState() + val receiptList by baseViewModel.receiptList.collectAsState() val searchList by baseViewModel.searchListItems.collectAsState() // var lastWeight by remember { mutableStateOf(null) } var lastWeight by remember { mutableDoubleStateOf(0.0) } @@ -97,10 +111,12 @@ fun IdentityView( LaunchedEffect(weightInfo) { Timber.d("LaunchedEffect weightInfo1 = $weightInfo, lastWeight = $lastWeight") - if (weightInfo - lastWeight > 1) { - Timber.d("weightInfo2 = $weightInfo") - debouncer.debounce { - takePhoto() + if (weightInfo - lastWeight > 1.0) { + Timber.d("LaunchedEffect pageType = $pageType, receiptList = ${receiptList.size}") + if (pageType == PageType.RECEIPT_PRODUCT && receiptList.isNotEmpty() || pageType == PageType.SELF_PROCUREMENT) { + debouncer.debounce { + takePhoto() + } } } lastWeight = weightInfo diff --git a/app/src/main/java/com/sw/inbound/viewmodel/BaseViewModel.kt b/app/src/main/java/com/sw/inbound/viewmodel/BaseViewModel.kt index 511152d..078cd9b 100644 --- a/app/src/main/java/com/sw/inbound/viewmodel/BaseViewModel.kt +++ b/app/src/main/java/com/sw/inbound/viewmodel/BaseViewModel.kt @@ -40,6 +40,7 @@ abstract class BaseViewModel( // 待收货的列表 用于识别时从中获取 private val _receiptList = MutableStateFlow>(emptyList()) + val receiptList: StateFlow> = _receiptList // 拍照uri private val _lastPhotoUri = MutableStateFlow(null)