成功订单页面
This commit is contained in:
@@ -58,6 +58,7 @@
|
||||
<activity android:name="com.sw.inbound.activity.FoodCollectionActivity"
|
||||
android:windowSoftInputMode="adjustPan" />
|
||||
<activity android:name="com.sw.inbound.activity.LocalImagePreviewActivity" />
|
||||
<activity android:name="com.sw.inbound.activity.PurchaseOrderActivity" />
|
||||
|
||||
<!-- <activity-->
|
||||
<!-- android:name=".InitActivity"-->
|
||||
|
||||
@@ -1,17 +1,91 @@
|
||||
package com.sw.inbound.activity
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.activity.viewModels
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.sw.inbound.R
|
||||
import com.sw.inbound.adapter.PurchaseOrderAdapter
|
||||
import com.sw.inbound.databinding.ActivityPurchaseOrderBinding
|
||||
import com.sw.inbound.dialog.Loading
|
||||
import com.sw.inbound.model.response.SupplierInfo
|
||||
import com.sw.inbound.utils.ext.clickWithDebounce
|
||||
import com.sw.inbound.utils.ext.gone
|
||||
import com.sw.inbound.utils.ext.startActivity
|
||||
import com.sw.inbound.utils.ext.visible
|
||||
import com.sw.inbound.viewmodel.PurchaseOrderViewModel
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
/**
|
||||
* 采购单列表
|
||||
*/
|
||||
@AndroidEntryPoint
|
||||
class PurchaseOrderActivity : ComponentActivity(){
|
||||
class PurchaseOrderActivity : ComponentActivity() {
|
||||
|
||||
private var list = mutableListOf<SupplierInfo>()
|
||||
private val adapter by lazy {
|
||||
PurchaseOrderAdapter(list).apply {
|
||||
setOnItemClickListener { adapter, view, position ->
|
||||
openReceiptPage(list[position])
|
||||
}
|
||||
addOnItemChildClickListener(R.id.btnReceive) { adapter, view, position ->
|
||||
openReceiptPage(list[position])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun openReceiptPage(item: SupplierInfo) {
|
||||
startActivity<ReceiptActivity> {
|
||||
putExtra(GoodsListActivity.ID, item.id)
|
||||
putExtra(GoodsListActivity.SUPPLIER_ID, item.supplierId)
|
||||
putExtra(GoodsListActivity.IS_RECEIPT_PAGE, true)
|
||||
//putExtra(GoodsListActivity.IS_NEW_RECEIPT, false)
|
||||
}
|
||||
}
|
||||
|
||||
private lateinit var binding: ActivityPurchaseOrderBinding
|
||||
val viewModel: PurchaseOrderViewModel by viewModels()
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = ActivityPurchaseOrderBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
binding.rvOrderList.let {
|
||||
it.layoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)
|
||||
it.adapter = adapter
|
||||
}
|
||||
binding.btnBack.setOnClickListener { finish() }
|
||||
binding.btnAddReceipt.clickWithDebounce {
|
||||
startActivity<SelfProcurementActivity> {
|
||||
putExtra(GoodsListActivity.IS_RECEIPT_PAGE, false)
|
||||
}
|
||||
}
|
||||
Loading.show(this)
|
||||
viewModel.getOrderListNew(pageNum = 1, pageSize = 100) { suppliers ->
|
||||
runOnUiThread {
|
||||
binding.root.postDelayed({
|
||||
Loading.dismiss()
|
||||
}, 600)
|
||||
updateSupplierList(suppliers)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("NotifyDataSetChanged")
|
||||
private fun updateSupplierList(suppliers: List<SupplierInfo>?) {
|
||||
if (suppliers.isNullOrEmpty()) {
|
||||
binding.rvOrderList.gone()
|
||||
binding.layoutEmptyView.visible()
|
||||
return
|
||||
}
|
||||
list.addAll(suppliers)
|
||||
adapter.notifyDataSetChanged()
|
||||
binding.rvOrderList.visible()
|
||||
binding.layoutEmptyView.gone()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,29 +1,59 @@
|
||||
//package com.sw.inbound.adapter
|
||||
//
|
||||
//import android.content.Context
|
||||
//import android.view.LayoutInflater
|
||||
//import android.view.ViewGroup
|
||||
//import com.chad.library.adapter4.BaseQuickAdapter
|
||||
//import com.chad.library.adapter4.viewholder.QuickViewHolder
|
||||
//import com.sw.inbound.databinding.ListItemCollectSearchBinding
|
||||
//import com.sw.inbound.databinding.ListItemPurchaseOrderBinding
|
||||
//import com.sw.inbound.model.response.SearchGoodsInfo
|
||||
//import com.sw.inbound.model.response.SupplierInfo
|
||||
//
|
||||
////List<SupplierInfo?>
|
||||
//class PurchaseOrderAdapter:BaseQuickAdapter<SupplierInfo, > {
|
||||
//
|
||||
// inner class VH(var binding: ListItemCollectSearchBinding) : QuickViewHolder(binding.root)
|
||||
//
|
||||
// override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH {
|
||||
// val inflater = LayoutInflater.from(context)
|
||||
// val binding = ListItemPurchaseOrderBinding.inflate(inflater, parent, false)
|
||||
// return VH(binding)
|
||||
// }
|
||||
//
|
||||
// override fun onBindViewHolder(holder: VH, position: Int, item: SupplierInfo) {
|
||||
//
|
||||
//
|
||||
// }
|
||||
//
|
||||
//}
|
||||
package com.sw.inbound.adapter
|
||||
|
||||
import android.content.Context
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.view.updateLayoutParams
|
||||
import com.chad.library.adapter4.BaseQuickAdapter
|
||||
import com.chad.library.adapter4.viewholder.QuickViewHolder
|
||||
import com.sw.inbound.R
|
||||
import com.sw.inbound.databinding.ListItemPurchaseOrderBinding
|
||||
import com.sw.inbound.ext.screenSize
|
||||
import com.sw.inbound.ext.toFormattedString
|
||||
import com.sw.inbound.model.response.SupplierInfo
|
||||
import com.sw.inbound.utils.ext.dp
|
||||
import com.sw.inbound.utils.ext.ifNullOrBlank
|
||||
|
||||
|
||||
class PurchaseOrderAdapter(var list:List<SupplierInfo>):BaseQuickAdapter<SupplierInfo, PurchaseOrderAdapter.VH>(list) {
|
||||
|
||||
inner class VH(var binding: ListItemPurchaseOrderBinding) : QuickViewHolder(binding.root)
|
||||
|
||||
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH {
|
||||
val inflater = LayoutInflater.from(context)
|
||||
val binding = ListItemPurchaseOrderBinding.inflate(inflater, parent, false)
|
||||
return VH(binding)
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: VH, position: Int, item: SupplierInfo?) {
|
||||
val screenWidth = context.screenSize[0]
|
||||
holder.itemView.updateLayoutParams {
|
||||
width = (screenWidth - 2*60.dp) / 3
|
||||
}
|
||||
|
||||
val binding = holder.binding
|
||||
val receiveStatus = item?.receiveStatus?:""
|
||||
val (statusColor, statusLabel) = when(receiveStatus) {
|
||||
1 -> R.color.red to "待收货"
|
||||
2 -> R.color.origin to "已收货"
|
||||
3 -> R.color.black to "已关闭"
|
||||
else -> R.color.black to "未知状态"
|
||||
}
|
||||
binding.tvReceiveState.run {
|
||||
text = statusLabel
|
||||
setTextColor(ContextCompat.getColor(context, statusColor))
|
||||
}
|
||||
|
||||
binding.tvSupplierName.text = item?.supplierName.ifNullOrBlank("-")
|
||||
binding.tvOrderNo.text = "单号 ${item?.purCode.ifNullOrBlank("-")}"
|
||||
binding.tvGoodsCount.text = item?.goodCount?.toFormattedString()
|
||||
binding.tvPurchaseDate.text = item?.purchaseDate.ifNullOrBlank("-")
|
||||
binding.tvReceiveDate.text = item?.receiveDate.ifNullOrBlank("-")
|
||||
binding.tvPurchaseMan.text = item?.receiveUser.ifNullOrBlank("-")
|
||||
binding.btnReceive.text = if (item?.receiveStatus == 4) "部分收货" else "收货"
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,10 +1,16 @@
|
||||
package com.sw.inbound.ext
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.util.DisplayMetrics
|
||||
import android.view.WindowManager
|
||||
|
||||
fun Activity.getScreenWidth(): Int {
|
||||
val Context.screenSize: IntArray
|
||||
get() {
|
||||
val windowManager = getSystemService(Context.WINDOW_SERVICE) as WindowManager
|
||||
val displayMetrics = DisplayMetrics()
|
||||
windowManager.defaultDisplay.getMetrics(displayMetrics)
|
||||
return displayMetrics.widthPixels
|
||||
}
|
||||
return intArrayOf(
|
||||
displayMetrics.widthPixels,
|
||||
displayMetrics.heightPixels
|
||||
)
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ import androidx.navigation.NavHostController
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import com.sw.inbound.R
|
||||
import com.sw.inbound.activity.GoodsListActivity
|
||||
import com.sw.inbound.activity.PurchaseOrderActivity
|
||||
import com.sw.inbound.activity.SelfProcurementActivity
|
||||
import com.sw.inbound.ui.Screen
|
||||
import com.sw.inbound.ui.weight.TopTitleBar
|
||||
@@ -79,12 +80,13 @@ fun HomeScreen(
|
||||
interactionSource = remember { MutableInteractionSource() },
|
||||
indication = null
|
||||
) {
|
||||
navController.navigate(Screen.PurchaseOrder.route)
|
||||
// navController.navigate(Screen.PurchaseOrder.route)
|
||||
//navController.context.startActivity<ReceiptActivity> {
|
||||
// putExtra(GoodsListActivity.ID, "123123")
|
||||
// putExtra(GoodsListActivity.SUPPLIER_ID, "123123123123")
|
||||
// putExtra(GoodsListActivity.IS_RECEIPT_PAGE, true)
|
||||
//}
|
||||
navController.context.startActivity<PurchaseOrderActivity>()
|
||||
},
|
||||
painter = painterResource(R.mipmap.ic_order_purchase),
|
||||
contentDescription = "采购单入库"
|
||||
|
||||
@@ -135,7 +135,7 @@ fun PurchaseOrderScreen(
|
||||
if (first.value) {
|
||||
return@Box
|
||||
}
|
||||
if (products.isEmpty()) {
|
||||
if (products.isNullOrEmpty()) {
|
||||
PurchaseEmptyItem()
|
||||
} else {
|
||||
LazyRow(
|
||||
@@ -144,7 +144,7 @@ fun PurchaseOrderScreen(
|
||||
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(
|
||||
|
||||
@@ -171,9 +171,7 @@ fun EditText.addOnActionSearchListener(searchCallback: () -> Unit) {
|
||||
* @param action 点击执行逻辑
|
||||
*/
|
||||
fun View.clickWithDebounce(delay: Long = 300, action: () -> Unit) {
|
||||
var job: Job? = null
|
||||
setOnClickListener {
|
||||
job?.cancel()
|
||||
// 用View的tag存储是否可点击的状态(默认可点击)
|
||||
if (tag as? Boolean ?: true) {
|
||||
tag = false // 标记为不可点击
|
||||
|
||||
@@ -21,8 +21,8 @@ class PurchaseOrderViewModel @Inject constructor(
|
||||
/**
|
||||
* 采购订单-供应商列表
|
||||
*/
|
||||
private val _supplierList = MutableStateFlow<List<SupplierInfo?>>(emptyList())
|
||||
val supplierList: StateFlow<List<SupplierInfo?>> = _supplierList
|
||||
private val _supplierList = MutableStateFlow<List<SupplierInfo>?>(emptyList())
|
||||
val supplierList: StateFlow<List<SupplierInfo>?> = _supplierList
|
||||
private val _firstOperate = MutableStateFlow<Boolean>(true)
|
||||
val firstOperate:StateFlow<Boolean> = _firstOperate
|
||||
|
||||
@@ -33,6 +33,14 @@ class PurchaseOrderViewModel @Inject constructor(
|
||||
/**
|
||||
* 获取采购订单-供应商列表
|
||||
*/
|
||||
fun getOrderListNew(pageNum: Int = 1, pageSize: Int = 5, block:(List<SupplierInfo>?)-> Unit) {
|
||||
launch {
|
||||
val response = repository.getReceiveList(pageNum, pageSize)
|
||||
block(
|
||||
if (parseResponse(response)) response.result else null
|
||||
)
|
||||
}
|
||||
}
|
||||
fun getOrderList(pageNum: Int = 1, pageSize: Int = 5) {
|
||||
if (pageNum != 1) {
|
||||
launch {
|
||||
@@ -45,7 +53,7 @@ class PurchaseOrderViewModel @Inject constructor(
|
||||
response.result?.let {
|
||||
updateCanLoadMore(it.size >= pageSize)
|
||||
Timber.d("加载更多 canLoadMore =${it.size >= pageSize}")
|
||||
_supplierList.value = _supplierList.value + it
|
||||
_supplierList.value = _supplierList.value?.plus(it)
|
||||
}
|
||||
}
|
||||
updateFirstState(false)
|
||||
@@ -54,9 +62,9 @@ class PurchaseOrderViewModel @Inject constructor(
|
||||
launchWithLoading {
|
||||
val response = repository.getReceiveList(pageNum, pageSize)
|
||||
if (parseResponse(response)) {
|
||||
response.result?.let {
|
||||
_supplierList.value = it
|
||||
}
|
||||
_supplierList.value = response.result ?: emptyList()
|
||||
} else {
|
||||
_supplierList.value = null
|
||||
}
|
||||
updateFirstState(false)
|
||||
}
|
||||
|
||||
@@ -34,8 +34,8 @@
|
||||
android:textColor="#141428"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="冯厨子"
|
||||
android:visibility="gone"/>
|
||||
android:visibility="gone"
|
||||
tools:text="冯厨子" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivLogout"
|
||||
@@ -44,32 +44,50 @@
|
||||
android:layout_marginEnd="40dp"
|
||||
android:paddingHorizontal="20dp"
|
||||
android:src="@mipmap/ic_logout"
|
||||
tools:ignore="ContentDescription"
|
||||
android:visibility="gone"/>
|
||||
android:visibility="gone"
|
||||
tools:ignore="ContentDescription" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginHorizontal="20dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@drawable/bg_white_alpha40_radius6"
|
||||
android:orientation="vertical"
|
||||
android:padding="0dp">
|
||||
android:background="@drawable/bg_white_alpha40_radius6">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rvOrderList"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:overScrollMode="never"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginHorizontal="10dp"
|
||||
tools:listitem="@layout/list_item_purchase_order"
|
||||
android:orientation="horizontal"
|
||||
android:overScrollMode="never"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||
tools:itemCount="8" />
|
||||
tools:itemCount="8"
|
||||
tools:listitem="@layout/list_item_purchase_order" />
|
||||
|
||||
</LinearLayout>
|
||||
<FrameLayout
|
||||
android:id="@+id/layoutEmptyView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:visibility="gone">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:drawableTop="@mipmap/ic_empty_data"
|
||||
android:drawablePadding="20dp"
|
||||
android:gravity="center"
|
||||
android:text="暂无数据"
|
||||
android:textColor="@color/title"
|
||||
android:textSize="40sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginHorizontal="10dp"
|
||||
android:layout_marginVertical="20dp"
|
||||
android:maxWidth="600dp"
|
||||
android:maxHeight="750dp"
|
||||
android:layout_marginVertical="20dp"
|
||||
android:layout_marginHorizontal="10dp"
|
||||
app:cardBackgroundColor="@color/white"
|
||||
app:cardCornerRadius="6dp"
|
||||
app:cardElevation="0dp">
|
||||
@@ -18,168 +18,227 @@
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="vertical">
|
||||
|
||||
<Space
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="2" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvEnterPriseName"
|
||||
android:id="@+id/tvSupplierName"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="20dp"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center"
|
||||
android:maxLines="1"
|
||||
android:layout_marginHorizontal="20dp"
|
||||
android:layout_marginTop="50dp"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="山东蔬农农业有限公司" />
|
||||
|
||||
<Space
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvOrderNo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginVertical="26dp"
|
||||
android:textColor="#ff78788c"
|
||||
android:layout_marginHorizontal="20dp"
|
||||
android:textColor="@color/gray"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
android:layout_marginHorizontal="20dp"
|
||||
tools:text="单号 CG202505271711504865817002" />
|
||||
|
||||
<Space
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<View
|
||||
android:id="@+id/dividerLine"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_marginHorizontal="20dp"
|
||||
android:background="#FFDCDCF0" />
|
||||
android:background="@color/divider" />
|
||||
|
||||
<Space
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="3" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="物品(项)"
|
||||
android:layout_marginTop="2dp"
|
||||
android:text="物品(项)"
|
||||
android:textColor="#ff78788c"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvGoodsNum"
|
||||
android:id="@+id/tvGoodsCount"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20sp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:includeFontPadding="false"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="90sp"
|
||||
android:textSize="80sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="5" />
|
||||
</LinearLayout>
|
||||
|
||||
<Space
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="2" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="120dp"
|
||||
android:layout_marginHorizontal="20dp"
|
||||
android:background="@drawable/shape_dash_border"
|
||||
android:orientation="horizontal"
|
||||
android:paddingVertical="26dp">
|
||||
android:baselineAligned="false"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingVertical="0dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvPurchaseDateTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="采购日期"
|
||||
android:textColor="#FF78788C"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="采购日期" />
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvSendGoodsDate"
|
||||
android:id="@+id/tvPurchaseDate"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="2025-05-29" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvReceiveDateTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="到货日期"
|
||||
android:textColor="#FF78788C"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="到货日期" />
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvReceiveGoodsDate"
|
||||
android:id="@+id/tvReceiveDate"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="2025-06-11" />
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<Space
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:layout_marginVertical="30dp"
|
||||
android:layout_marginHorizontal="20dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="收货状态:"
|
||||
android:textColor="#ff78788c"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvReceiveState"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="#ff78788c"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="收货状态:部分收货" />
|
||||
tools:text="部分收货" />
|
||||
|
||||
<Space
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="end|center_vertical"
|
||||
android:text="采购人:"
|
||||
android:textColor="#ff78788c"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvPurchaseMan"
|
||||
android:layout_width="0dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="end|center_vertical"
|
||||
android:textColor="#ff78788c"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="24sp"
|
||||
android:textStyle="bold"
|
||||
tools:text="采购人:冯厨子" />
|
||||
tools:text="冯厨子" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<Space
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatButton
|
||||
android:id="@+id/btnReceive"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="80dp"
|
||||
android:background="@drawable/bg_green_ripple"
|
||||
android:text="收货"
|
||||
android:textSize="30sp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:layout_marginHorizontal="20dp"
|
||||
android:layout_marginBottom="20dp"
|
||||
android:background="@drawable/bg_green_ripple"
|
||||
android:gravity="center"
|
||||
android:text="收货"
|
||||
android:textColor="@color/white"
|
||||
android:textStyle="bold"/>
|
||||
android:textSize="30sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</LinearLayout>
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
Reference in New Issue
Block a user