From 554dfbba2cad94677f788bf5bcd894b636686963 Mon Sep 17 00:00:00 2001 From: zxj <275873859@qq.com> Date: Thu, 21 Aug 2025 18:07:29 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BA=86=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=89=A9=E5=93=81=E5=8F=8A=E9=87=87=E8=B4=AD=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E5=BC=B9=E7=AA=97=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/request/GoodsPurchaseUnitParam.kt | 13 +- .../inbound/ui/page/SelfProcurementScreen.kt | 159 +++++++++--------- .../viewmodel/SelfProcurementViewModel.kt | 19 ++- 3 files changed, 96 insertions(+), 95 deletions(-) diff --git a/app/src/main/java/com/sw/inbound/model/request/GoodsPurchaseUnitParam.kt b/app/src/main/java/com/sw/inbound/model/request/GoodsPurchaseUnitParam.kt index c2a935d..324d643 100644 --- a/app/src/main/java/com/sw/inbound/model/request/GoodsPurchaseUnitParam.kt +++ b/app/src/main/java/com/sw/inbound/model/request/GoodsPurchaseUnitParam.kt @@ -11,17 +11,7 @@ data class GoodsPurchaseUnitParam( * 库存与克的转换值 */ var consumeValue: String = "", - val consumeValueTemp: String = "", ) { - - val consumeValueTempValue: String - get() { - if (consumeValue.isNotEmpty()) { - return consumeValue - } - return consumeValueTemp - } - val unitIdStr: String get() { if (unitId == 0) return "" @@ -48,10 +38,9 @@ data class GoodsPurchaseUnitParam( if (purchaseValue == null || purchaseValue == 0f) { return "请输入采购单位对应的库存数量" } - if (consumeValueTemp.isEmpty()) { + if (consumeValue.isEmpty()) { return "请输入库存单位对应的消耗值" } - consumeValue = consumeValueTemp return null } } 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 0eae923..ec52064 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 @@ -361,7 +361,6 @@ private fun DialogRightEditView(viewModel: SelfProcurementViewModel) { ColumnInputText( modifier = Modifier - .weight(1f) .width(474.dp), label = "净材率", value = goodsAddParam.netRateStr, @@ -410,7 +409,6 @@ private fun DialogRightEditView(viewModel: SelfProcurementViewModel) { verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(60.dp) ) { - ColumnInputText( modifier = Modifier.width(474.dp), value = goodsAddParam.unitIdStr, @@ -425,6 +423,41 @@ private fun DialogRightEditView(viewModel: SelfProcurementViewModel) { }, ) + Column { + Text(text = "消耗单位", style = AppTypography.black141428TextStyle) + Spacer(modifier = Modifier.height(20.dp)) + Row( + modifier = Modifier + .height(60.dp) + .fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween + ) { + CustomTextField( + modifier = Modifier.width(234.dp), + value = goodsAddParam.consumeValue, + placeholderValue = "请录入", + isInitUpdate = true, + onValueChange = { + viewModel.updateGoodsAddParam(goodsAddParam.copy(consumeValue = it)) + }, inputType = InputType.Decimal, hasNext = true + ) + Spacer(modifier = Modifier.width(24.dp)) + Text("克", style = AppTypography.gray96a0aaTextStyle) + Spacer(modifier = Modifier.width(24.dp)) + Text(text = "=", style = AppTypography.gray96a0aaTextStyle) + Spacer(modifier = Modifier.width(24.dp)) + CustomTextField( + modifier = Modifier.width(120.dp), + value = goodsAddParam.unitIdStr, + isInitUpdate = true, + placeholderValue = "-", + enabled = false, + textAlign = TextAlign.Center, + onValueChange = {} + ) + } + } } Column { @@ -481,45 +514,12 @@ private fun DialogRightEditView(viewModel: SelfProcurementViewModel) { if (it.isValidAmount()) { viewModel.updateGoodsAddParam(goodsAddParam.copy(purchasePrice = it.toSafeBigDecimal())) } - }, inputType = InputType.Decimal, hasNext = true + }, inputType = InputType.Decimal, hasNext = false ) Spacer(modifier = Modifier.width(24.dp)) Text("元", style = AppTypography.gray96a0aaTextStyle) } } - - Column { - Text(text = "消耗单位", style = AppTypography.black141428TextStyle) - Spacer(modifier = Modifier.height(20.dp)) - Row( - modifier = Modifier - .height(92.dp) - .fillMaxWidth() - .dashedBorder() - .padding(vertical = 16.dp, horizontal = 26.dp), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.SpaceBetween - ) { - Text("1", style = AppTypography.black141428TextStyle.bold()) - Spacer(modifier = Modifier.width(24.dp)) - Text(goodsAddParam.unitIdStr, style = AppTypography.gray96a0aaTextStyle) - Spacer(modifier = Modifier.width(24.dp)) - Text(text = "=", style = AppTypography.gray96a0aaTextStyle) - Spacer(modifier = Modifier.width(24.dp)) - CustomTextField( - modifier = Modifier.width(200.dp), - value = goodsAddParam.consumeValue, - placeholderValue = "请录入", - isInitUpdate = true, - onValueChange = { - viewModel.updateGoodsAddParam(goodsAddParam.copy(consumeValue = it)) - }, inputType = InputType.Decimal, hasNext = false - ) - Spacer(modifier = Modifier.width(24.dp)) - Text("克", style = AppTypography.gray96a0aaTextStyle) - } - } - Spacer(modifier = Modifier.height(24.dp)) } } @@ -555,7 +555,8 @@ private fun AddPurchaseUnitDialogContentView( private fun DialogAddPurchaseUnitEditView(viewModel: SelfProcurementViewModel) { val unitTypeList = GlobalData.unitTypeList val goodsAddUnitParam by viewModel.goodsAddUnitParam.collectAsState() - val canChange by viewModel.dropdownTextChange.collectAsState() + val canChangeKcUnit by viewModel.canChangeKcUnit.collectAsState() + val canChangeConsumeValue by viewModel.canChangeConsumeValue.collectAsState() Column( modifier = Modifier @@ -569,10 +570,10 @@ private fun DialogAddPurchaseUnitEditView(viewModel: SelfProcurementViewModel) { horizontalArrangement = Arrangement.spacedBy(60.dp) ) { ColumnInputText( - modifier = Modifier.fillMaxWidth(), + modifier = Modifier.width(370.dp), value = goodsAddUnitParam.unitIdStr, label = "库存单位", - enabled = canChange, + enabled = canChangeKcUnit, dropdownItems = unitTypeList, onValueChange = { value -> viewModel.updateGoodsPurchaseUnit( @@ -582,6 +583,42 @@ private fun DialogAddPurchaseUnitEditView(viewModel: SelfProcurementViewModel) { ) }, ) + Column { + Text(text = "消耗单位", style = AppTypography.black141428TextStyle) + Spacer(modifier = Modifier.height(20.dp)) + Row( + modifier = Modifier + .height(60.dp) + .fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween + ) { + CustomTextField( + modifier = Modifier.width(158.dp), + value = goodsAddUnitParam.consumeValue, + placeholderValue = "请录入", + enabled = canChangeConsumeValue, + isInitUpdate = true, + onValueChange = { + viewModel.updateGoodsPurchaseUnit(goodsAddUnitParam.copy(consumeValue = it)) + }, inputType = InputType.Decimal, hasNext = true + ) + Spacer(modifier = Modifier.width(24.dp)) + Text("克", style = AppTypography.gray96a0aaTextStyle) + Spacer(modifier = Modifier.width(24.dp)) + Text(text = "=", style = AppTypography.gray96a0aaTextStyle) + Spacer(modifier = Modifier.width(24.dp)) + CustomTextField( + modifier = Modifier.width(120.dp), + value = goodsAddUnitParam.unitIdStr, + isInitUpdate = true, + placeholderValue = "-", + enabled = false, + textAlign = TextAlign.Center, + onValueChange = {} + ) + } + } } Column { @@ -594,7 +631,7 @@ private fun DialogAddPurchaseUnitEditView(viewModel: SelfProcurementViewModel) { .dashedBorder() .padding(vertical = 16.dp, horizontal = 26.dp), verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.SpaceBetween + horizontalArrangement = Arrangement.Start ) { Text("1", style = AppTypography.black141428TextStyle.bold()) Spacer(modifier = Modifier.width(24.dp)) @@ -612,9 +649,9 @@ private fun DialogAddPurchaseUnitEditView(viewModel: SelfProcurementViewModel) { ) ) }) - Spacer(modifier = Modifier.width(24.dp)) + Spacer(modifier = Modifier.width(44.dp)) Text(text = "=", style = AppTypography.gray96a0aaTextStyle) - Spacer(modifier = Modifier.width(24.dp)) + Spacer(modifier = Modifier.width(44.dp)) CustomTextField( modifier = Modifier.width(260.dp), value = goodsAddUnitParam.purchaseValue.toSafeString(goodsAddUnitParam.unitIdStr), @@ -628,44 +665,12 @@ private fun DialogAddPurchaseUnitEditView(viewModel: SelfProcurementViewModel) { Text(goodsAddUnitParam.unitIdStr, style = AppTypography.gray96a0aaTextStyle) } } - - Column { - Text(text = "消耗单位", style = AppTypography.black141428TextStyle) - Spacer(modifier = Modifier.height(20.dp)) - Row( - modifier = Modifier - .height(92.dp) - .fillMaxWidth() - .dashedBorder() - .padding(vertical = 16.dp, horizontal = 26.dp), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.SpaceBetween - ) { - Text("1", style = AppTypography.black141428TextStyle.bold()) - Spacer(modifier = Modifier.width(24.dp)) - Text(goodsAddUnitParam.unitIdStr, style = AppTypography.gray96a0aaTextStyle) - Spacer(modifier = Modifier.width(24.dp)) - Text(text = "=", style = AppTypography.gray96a0aaTextStyle) - Spacer(modifier = Modifier.width(24.dp)) - CustomTextField( - modifier = Modifier.width(260.dp), - value = goodsAddUnitParam.consumeValueTempValue, - isInitUpdate = true, - placeholderValue = "请录入", - enabled = goodsAddUnitParam.consumeValue.isEmpty(), - onValueChange = { - viewModel.updateGoodsPurchaseUnit(goodsAddUnitParam.copy(consumeValueTemp = it)) - }, inputType = InputType.Decimal, hasNext = false - ) - Spacer(modifier = Modifier.width(24.dp)) - Text("克", style = AppTypography.gray96a0aaTextStyle) - } - } - Column( verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally, - modifier = Modifier.fillMaxSize() + modifier = Modifier + .fillMaxSize() + .padding(top = 12.dp) ) { Text( text = "完善更多单位信息请登录后台维护,建议及时操作以确保信息准确", diff --git a/app/src/main/java/com/sw/inbound/viewmodel/SelfProcurementViewModel.kt b/app/src/main/java/com/sw/inbound/viewmodel/SelfProcurementViewModel.kt index c2664e5..f141f05 100644 --- a/app/src/main/java/com/sw/inbound/viewmodel/SelfProcurementViewModel.kt +++ b/app/src/main/java/com/sw/inbound/viewmodel/SelfProcurementViewModel.kt @@ -68,9 +68,13 @@ class SelfProcurementViewModel @Inject constructor( val showAddPurchaseUnitDialog: StateFlow = _showAddPurchaseUnitDialog - // 是否可以下拉 - private val _dropdownTextChange = MutableStateFlow(false) - val dropdownTextChange: StateFlow = _dropdownTextChange + // 是否可以修改库存单位 + private val _canChangeKcUnit = MutableStateFlow(false) + val canChangeKcUnit: StateFlow = _canChangeKcUnit + + // 是否可以修改消耗值 + private val _canChangeConsumeValue = MutableStateFlow(false) + val canChangeConsumeValue: StateFlow = _canChangeConsumeValue /** * 数量是否是用户输入的值 @@ -327,10 +331,13 @@ class SelfProcurementViewModel @Inject constructor( } fun updateAddPurchaseUnitDialog(show: Boolean) { + if (_selectedItem.value == null) return _showAddPurchaseUnitDialog.value = show if (show) { - val hasUnitId = GlobalData.unitTypeList.any { it.id == _selectedItem.value?.kcUnitId } - _dropdownTextChange.value = !hasUnitId + val hasUnitId = GlobalData.unitTypeList.any { it.id == _selectedItem.value!!.kcUnitId } + _canChangeKcUnit.value = !hasUnitId + _canChangeConsumeValue.value = + _selectedItem.value!!.consumeValue.trim().isEmpty() == true } else { _goodsAddUnitParam.value = GoodsPurchaseUnitParam() } @@ -345,7 +352,7 @@ class SelfProcurementViewModel @Inject constructor( } fun updateDropdownTextChange(canChange: Boolean) { - _dropdownTextChange.value == canChange + _canChangeKcUnit.value == canChange } fun addGoodsPurchaseUnit() {