优化收货状态

This commit is contained in:
mazengfei
2026-01-19 16:59:59 +08:00
parent cc22921e3e
commit 41d48a23af
@@ -68,9 +68,7 @@ import kotlinx.coroutines.flow.map
import timber.log.Timber
@Preview(
widthDp = 1920,
heightDp = 1080,
showBackground = true
widthDp = 1920, heightDp = 1080, showBackground = true
)
/**
* 采购订单-供应商列表
@@ -103,13 +101,10 @@ fun PurchaseOrderScreen(
// 检测是否滚动到底部
LaunchedEffect(lazyListState) {
snapshotFlow { lazyListState.layoutInfo }
.map { layoutInfo ->
snapshotFlow { lazyListState.layoutInfo }.map { layoutInfo ->
val lastVisibleItem = layoutInfo.visibleItemsInfo.lastOrNull()
lastVisibleItem?.index == layoutInfo.totalItemsCount - 1
}
.distinctUntilChanged()
.collect { reachedEnd ->
}.distinctUntilChanged().collect { reachedEnd ->
Timber.d("加载更多 reachedEnd = $reachedEnd, isMoreLoading = $isMoreLoading, canLoadMore = $canLoadMore")
if (reachedEnd && !isMoreLoading && canLoadMore) {
pageNum++
@@ -128,30 +123,25 @@ fun PurchaseOrderScreen(
Image(
painter = painterResource(id = R.mipmap.bg_listview),
contentDescription = "背景",
modifier = Modifier
.fillMaxSize(),
modifier = Modifier.fillMaxSize(),
contentScale = ContentScale.FillBounds
)
Box(
modifier = Modifier.padding(
start = 30.dp,
end = 30.dp,
top = 30.dp,
bottom = 90.dp
start = 30.dp, end = 30.dp, top = 30.dp, bottom = 90.dp
)
) {
if (products.isEmpty()) {
PurchaseEmptyItem()
} else {
LazyRow(
modifier = modifier
.padding(10.dp),
modifier = modifier.padding(10.dp),
state = lazyListState,
contentPadding = PaddingValues(16.dp),
horizontalArrangement = Arrangement.spacedBy(30.dp)
) {
items(items = products, key = { it!!.id?:"" }) { product ->
items(items = products, key = { it!!.id ?: "" }) { product ->
PurchaseOrderItem(product!!) {
// navController.navigate(
// Screen.ReceiptProduct.createRoute(
@@ -160,10 +150,10 @@ fun PurchaseOrderScreen(
// )
// )
navController.context.startActivity<ReceiptActivity> {
putExtra(GoodsListActivity.ID,product!!.id)
putExtra(GoodsListActivity.SUPPLIER_ID,product.supplierId)
putExtra(GoodsListActivity.IS_RECEIPT_PAGE,true)
putExtra(GoodsListActivity.IS_NEW_RECEIPT,false)
putExtra(GoodsListActivity.ID, product!!.id)
putExtra(GoodsListActivity.SUPPLIER_ID, product.supplierId)
putExtra(GoodsListActivity.IS_RECEIPT_PAGE, true)
putExtra(GoodsListActivity.IS_NEW_RECEIPT, false)
}
}
}
@@ -185,20 +175,20 @@ fun PurchaseOrderScreen(
}
}
BottomActionBar(
modifier = Modifier, onLeftButtonClick = {
navController.popBackStack()
}, onRight2ButtonClick = {
//navController.navigate(Screen.SelfProcurement.route)
navController.context.startActivity<SelfProcurementActivity> {
putExtra(GoodsListActivity.IS_RECEIPT_PAGE, false)}
//navController.context.startActivity<ReceiptActivity> {
// //xtra(GoodsListActivity.ID,it!!.id)
// //xtra(GoodsListActivity.SUPPLIER_ID,it.supplierId)
// putExtra(GoodsListActivity.IS_RECEIPT_PAGE,true)
// putExtra(GoodsListActivity.IS_NEW_RECEIPT,true)
//}
})
BottomActionBar(modifier = Modifier, onLeftButtonClick = {
navController.popBackStack()
}, onRight2ButtonClick = {
//navController.navigate(Screen.SelfProcurement.route)
navController.context.startActivity<SelfProcurementActivity> {
putExtra(GoodsListActivity.IS_RECEIPT_PAGE, false)
}
//navController.context.startActivity<ReceiptActivity> {
// //xtra(GoodsListActivity.ID,it!!.id)
// //xtra(GoodsListActivity.SUPPLIER_ID,it.supplierId)
// putExtra(GoodsListActivity.IS_RECEIPT_PAGE,true)
// putExtra(GoodsListActivity.IS_NEW_RECEIPT,true)
//}
})
}
}
@@ -216,9 +206,7 @@ fun PurchaseEmptyItem() {
Spacer(modifier = Modifier.height(30.dp))
Text(
text = "暂无数据", style = TextStyle(
fontSize = 30.sp,
fontWeight = FontWeight.Bold,
color = colorResource(R.color.title)
fontSize = 30.sp, fontWeight = FontWeight.Bold, color = colorResource(R.color.title)
)
)
}
@@ -231,30 +219,36 @@ fun PurchaseEmptyItem() {
fun PurchaseOrderItem(product: SupplierInfo, onItemClick: (SupplierInfo) -> Unit) {
val (receiptStatusStyle, statusLabel) = when (product.receiveStatus) {
1 -> blackTextStyle to "已关闭"
2 -> blackTextStyle to "已完成"
3 -> blackTextStyle.copy(
// 1 -> blackTextStyle to "已关闭"
// 2 -> blackTextStyle to "已完成"
// 3 -> blackTextStyle.copy(
// color = colorResource(R.color.red)
// ) to "未收货"
//
// 4 -> blackTextStyle.copy(
// color = colorResource(R.color.origin)
// ) to "部分收货"
1 -> blackTextStyle.copy(
color = colorResource(R.color.red)
) to "收货"
) to "收货"
4 -> blackTextStyle.copy(
2 -> blackTextStyle.copy(
color = colorResource(R.color.origin)
) to "部分收货"
) to "收货"
else -> blackTextStyle to "已关闭"
3 -> blackTextStyle to "已关闭"
else -> blackTextStyle to "未知状态"
}
val itemSpace = 29.dp
Box(
modifier = Modifier
.background(
color = Color.White.copy(alpha = 0.37f),
shape = RoundedCornerShape(10.dp) // 圆角背景
color = Color.White.copy(alpha = 0.37f), shape = RoundedCornerShape(10.dp) // 圆角背景
)
.clickable {
onItemClick(product)
}
) {
}) {
Column(
modifier = Modifier
.width(580.dp)
@@ -275,24 +269,19 @@ fun PurchaseOrderItem(product: SupplierInfo, onItemClick: (SupplierInfo) -> Unit
)
Spacer(modifier = Modifier.height(itemSpace))
Text(
text = "单号 ${product.purCode ?: "-"}",
maxLines = 1,
style = grayTextStyle
text = "单号 ${product.purCode ?: "-"}", maxLines = 1, style = grayTextStyle
)
Spacer(modifier = Modifier.height(itemSpace))
HorizontalDivider(
thickness = 1.dp,
color = colorResource(R.color.divider)
thickness = 1.dp, color = colorResource(R.color.divider)
)
Spacer(modifier = Modifier.height(40.dp))
Text(
text = "物品(项)",
style = grayTextStyle
text = "物品(项)", style = grayTextStyle
)
Spacer(modifier = Modifier.height(22.dp))
Text(
text = product.goodCount.toFormattedString(),
style = TextStyle(
text = product.goodCount.toFormattedString(), style = TextStyle(
color = colorResource(R.color.black),
fontSize = 90.sp,
fontWeight = FontWeight.Bold
@@ -303,9 +292,7 @@ fun PurchaseOrderItem(product: SupplierInfo, onItemClick: (SupplierInfo) -> Unit
modifier = Modifier
.fillMaxWidth()
.dashedBorder(
strokeWidth = 2.dp,
color = Color(0xFFBDC5CE),
cornerRadiusDp = 10.dp
strokeWidth = 2.dp, color = Color(0xFFBDC5CE), cornerRadiusDp = 10.dp
)
.padding(horizontal = 72.dp, vertical = 27.dp),
horizontalArrangement = Arrangement.SpaceBetween
@@ -323,8 +310,7 @@ fun PurchaseOrderItem(product: SupplierInfo, onItemClick: (SupplierInfo) -> Unit
}
Spacer(modifier = Modifier.height(28.dp))
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceBetween
modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween
) {
Row {
Text("收货状态:", style = grayTextStyle)
@@ -348,7 +334,8 @@ fun PurchaseOrderItem(product: SupplierInfo, onItemClick: (SupplierInfo) -> Unit
colors = ButtonDefaults.buttonColors(
containerColor = Color(0xFF009632).copy(alpha = 1f),
contentColor = colorResource(R.color.white)
), onClick = {
),
onClick = {
onItemClick(product)
}) {
Text(