处理数量、单价、金额之间的计算
This commit is contained in:
@@ -540,7 +540,8 @@ private fun ReceiptProductEditView(
|
||||
label = "收货数量",
|
||||
value = selectedItem!!.receivedNumTemp,
|
||||
onValueChange = { value ->
|
||||
viewModel.updateCountInputState(value.isNotEmpty())
|
||||
viewModel.updateCountInputState(true)
|
||||
|
||||
selectedItem?.let {
|
||||
viewModel.updateSelectedItem(
|
||||
selectedItem!!.copy(
|
||||
@@ -557,14 +558,17 @@ private fun ReceiptProductEditView(
|
||||
|
||||
RowInputLayout(
|
||||
label = "收货单价",
|
||||
value = selectedItem!!.recUnitPriceTaxInTemp ?: "",
|
||||
value = selectedItem!!.recUnitPriceTaxInTemp,
|
||||
trailingLabel = "元",
|
||||
isInitUpdate = true,
|
||||
onValueChange = { value ->
|
||||
viewModel.updatePriceInputState(value.isNotEmpty())
|
||||
viewModel.updatePriceInputState(true)
|
||||
viewModel.updateAmountInputState(false)
|
||||
selectedItem?.let {
|
||||
viewModel.updateSelectedItem(
|
||||
selectedItem!!.copy(
|
||||
recPriceExItemTemp = "",
|
||||
recPriceExItem = 0f,
|
||||
recUnitPriceTaxInTemp = value,
|
||||
recUnitPriceTaxIn = value.toSafeFloat()
|
||||
)
|
||||
@@ -574,14 +578,18 @@ private fun ReceiptProductEditView(
|
||||
)
|
||||
RowInputLayout(
|
||||
label = "收货金额",
|
||||
value = selectedItem!!.recPriceExItemTemp ?: "",
|
||||
value = selectedItem!!.recPriceExItemTemp,
|
||||
trailingLabel = "元",
|
||||
isInitUpdate = true,
|
||||
onValueChange = { value ->
|
||||
viewModel.updateAmountInputState(value.isNotEmpty())
|
||||
viewModel.updateAmountInputState(true)
|
||||
viewModel.updatePriceInputState(false)
|
||||
selectedItem?.let {
|
||||
viewModel.updateSelectedItem(
|
||||
selectedItem!!.copy(
|
||||
recUnitPriceTaxInTemp = "",
|
||||
recUnitPriceTaxIn = 0f,
|
||||
|
||||
recPriceExItemTemp = value,
|
||||
recPriceExItem = value.toSafeFloat()
|
||||
)
|
||||
|
||||
@@ -656,7 +656,7 @@ private fun SelfProductEditView(
|
||||
isInitUpdate = true,
|
||||
onValueChange = { value ->
|
||||
Timber.d("采购数量 onValueChange value = $value")
|
||||
viewModel.updateCountInputState(value.isNotEmpty())
|
||||
viewModel.updateCountInputState(true)
|
||||
selectedItem.let {
|
||||
viewModel.updateSelectedItem(
|
||||
selectedItem!!.copy(
|
||||
@@ -676,11 +676,14 @@ private fun SelfProductEditView(
|
||||
trailingLabel = "元",
|
||||
isInitUpdate = true,
|
||||
onValueChange = { value ->
|
||||
viewModel.updatePriceInputState(value.isNotEmpty())
|
||||
viewModel.updatePriceInputState(true)
|
||||
viewModel.updateAmountInputState(false)
|
||||
selectedItem.let {
|
||||
Timber.d("goodsUnitPrice 更新 = $value")
|
||||
viewModel.updateSelectedItem(
|
||||
selectedItem!!.copy(
|
||||
goodsPrice = 0.0,
|
||||
goodsPriceTemp = "",
|
||||
goodsUnitPriceTemp = value,
|
||||
goodsUnitPrice = value.toSafeDouble()
|
||||
)
|
||||
@@ -694,10 +697,13 @@ private fun SelfProductEditView(
|
||||
trailingLabel = "元",
|
||||
isInitUpdate = true,
|
||||
onValueChange = { value ->
|
||||
viewModel.updateAmountInputState(value.isNotEmpty())
|
||||
viewModel.updateAmountInputState(true)
|
||||
viewModel.updatePriceInputState(false)
|
||||
selectedItem.let {
|
||||
viewModel.updateSelectedItem(
|
||||
selectedItem!!.copy(
|
||||
goodsUnitPrice = 0.0,
|
||||
goodsUnitPriceTemp = "",
|
||||
goodsPriceTemp = value,
|
||||
goodsPrice = value.toSafeDouble()
|
||||
)
|
||||
|
||||
@@ -108,9 +108,7 @@ fun CustomTextField(
|
||||
onClick: () -> Unit = {}, // 点击
|
||||
) {
|
||||
val containerColor = if (enabled) Color.Transparent else Gray_DCDCF0
|
||||
// var inputValue by remember { mutableStateOf(value) }
|
||||
var isUserInput by remember { mutableStateOf(false) }
|
||||
var inputValue by remember(if (isInitUpdate && !isUserInput) value else null) {
|
||||
var inputValue by remember(if (isInitUpdate) value else null) {
|
||||
mutableStateOf(value)
|
||||
}
|
||||
val focusManager = LocalFocusManager.current
|
||||
@@ -134,7 +132,6 @@ fun CustomTextField(
|
||||
textStyle = newTextStyle,
|
||||
onValueChange = { newValue ->
|
||||
Timber.d("onValueChange newValue = $newValue")
|
||||
isUserInput = newValue.isNotEmpty()
|
||||
when (inputType) {
|
||||
InputType.Number -> {
|
||||
if (newValue.isEmpty() || newValue.isValidNumber()) {
|
||||
|
||||
@@ -7,6 +7,7 @@ import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.layout.width
|
||||
@@ -47,7 +48,9 @@ fun ReceiptUnadjustedListView(
|
||||
Row(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(30.dp)
|
||||
.padding(horizontal = 60.dp)
|
||||
.height(84.dp),
|
||||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
CustomSingleRightText(
|
||||
modifier = Modifier.weight(1f),
|
||||
@@ -89,7 +92,8 @@ fun ReceiptUnadjustedListView(
|
||||
Row(
|
||||
modifier = Modifier
|
||||
.background(color = checkedBg)
|
||||
.padding(30.dp)
|
||||
.height(80.dp)
|
||||
.padding(horizontal = 60.dp)
|
||||
.clickable {
|
||||
onItemCheckedClick(it)
|
||||
}, verticalAlignment = Alignment.CenterVertically
|
||||
|
||||
Reference in New Issue
Block a user