Commit faf8ce77 authored by yinjiacheng's avatar yinjiacheng

update 订单详情页UI

parent eda3b7ba
......@@ -13,11 +13,13 @@ object OrderStatusManager {
fun getOrderStatus(status: Int): OrderStatus {
return when (status) {
0 -> OrderStatus.ORDER_STATUS_CONFIRM
1 -> OrderStatus.ORDER_STATUS_PAID
2 -> OrderStatus.ORDER_STATUS_WAIT_REFUND
3 -> OrderStatus.ORDER_STATUS_ON_REFUND
1 -> OrderStatus.ORDER_STATUS_WAIT_PAY
2 -> OrderStatus.ORDER_STATUS_PAID
3 -> OrderStatus.ORDER_STATUS_WAIT_REFUND
4 -> OrderStatus.ORDER_STATUS_REFUNDED
5 -> OrderStatus.ORDER_STATUS_REFUSE_REFUND
5 -> OrderStatus.ORDER_STATUS_ON_REFUND
6 -> OrderStatus.ORDER_STATUS_REFUSE_REFUND
8 -> OrderStatus.ORDER_STATUS_PART_REFUND
else -> OrderStatus.ORDER_STATUS_UNKNOWN
}
}
......@@ -25,14 +27,16 @@ object OrderStatusManager {
/**
* 订单状态
* e.g. 未知、确认中、已支付、待退款、退款中、已退款、拒绝退款
* e.g. 未知、确认中、未支付、已支付、待退款、退款中、已退款、拒绝退款、部分退款
*/
enum class OrderStatus(val code: Int, val text: String) {
ORDER_STATUS_UNKNOWN(-1, "未知"),
ORDER_STATUS_CONFIRM(0, "确认中"),
ORDER_STATUS_PAID(1, "已支付"),
ORDER_STATUS_WAIT_REFUND(2, "待退款"),
ORDER_STATUS_ON_REFUND(3, "退款中"),
ORDER_STATUS_WAIT_PAY(1, "未支付"),
ORDER_STATUS_PAID(2, "已支付"),
ORDER_STATUS_WAIT_REFUND(3, "待退款"),
ORDER_STATUS_REFUNDED(4, "已退款"),
ORDER_STATUS_REFUSE_REFUND(5, "已拒绝退款")
ORDER_STATUS_ON_REFUND(5, "退款中"),
ORDER_STATUS_REFUSE_REFUND(6, "已拒绝退款"),
ORDER_STATUS_PART_REFUND(8, "部分退款")
}
......@@ -4,7 +4,8 @@ import androidx.activity.viewModels
import com.yidian.bcommon.mvvm.BaseMvvmActivity
import com.yidian.shenghuoquan.border.R
import com.yidian.shenghuoquan.border.databinding.BorderActivityOrderDetailBinding
import com.yidian.shenghuoquan.border.manager.OrderStatus
import com.yidian.shenghuoquan.border.manager.OrderStatusManager
import com.yidian.shenghuoquan.border.viewmodel.OrderDetailViewModel
/**
* author: yinjiacheng
......@@ -17,8 +18,15 @@ class OrderDetailActivity : BaseMvvmActivity<BorderActivityOrderDetailBinding, O
override val vm: OrderDetailViewModel by viewModels()
override fun initView() {
binding.svOrderStatus.setOrderStatus(OrderStatus.ORDER_STATUS_REFUSE_REFUND)
binding.pvPickupPointInfo.setPickupPoint(OrderStatus.ORDER_STATUS_CONFIRM, null)
binding.ivConsigneeInfo.setConsigneeInfo(OrderStatus.ORDER_STATUS_CONFIRM, null)
vm.orderDetailData.observe(this, {
// 获取当前订单状态
val status = OrderStatusManager.getOrderStatus(it.orderStatus)
binding.svOrderStatus.setOrderStatus(status, it)
binding.pvPickupPointInfo.setPickupPoint(status, it.placeList)
binding.ivConsigneeInfo.setConsigneeInfo(status, it.orderShippingInfo)
binding.ivCommodityInfo.setCommodityInfo(status, it)
binding.ivOrderInfo.setOrderInfo(status, it)
})
vm.requestOrderDetail("21081915562568101010")
}
}
package com.yidian.shenghuoquan.border.ui.widget
import android.content.Context
import android.util.AttributeSet
import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.view.isVisible
import com.yidian.shenghuoquan.border.R
import com.yidian.shenghuoquan.border.databinding.BorderViewOrderStatusInfoBinding
import com.yidian.shenghuoquan.border.manager.OrderStatus
/**
* author: yinjiacheng
* date: 2021/8/21 09:57
* description: 订单详情页-订单状态
*/
class OderStatusInfoView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0) :
ConstraintLayout(context, attrs, defStyle) {
private val viewBinding =
BorderViewOrderStatusInfoBinding.bind(View.inflate(getContext(), R.layout.border_view_order_status_info, this))
/**
* 设置订单状态
*/
// TODO: 2021/8/21 传入退款金额
fun setOrderStatus(status: OrderStatus) {
viewBinding.tvOrderStatus.text = status.text
when (status) {
OrderStatus.ORDER_STATUS_UNKNOWN -> {
viewBinding.ivOrderStatus.setImageResource(R.drawable.icon_order_status_paid)
}
OrderStatus.ORDER_STATUS_PAID -> {
viewBinding.ivOrderStatus.setImageResource(R.drawable.icon_order_status_paid)
}
OrderStatus.ORDER_STATUS_WAIT_REFUND -> {
viewBinding.ivOrderStatus.setImageResource(R.drawable.icon_order_status_wait_refund)
}
OrderStatus.ORDER_STATUS_ON_REFUND -> {
viewBinding.ivOrderStatus.setImageResource(R.drawable.icon_order_status_on_refund)
}
OrderStatus.ORDER_STATUS_REFUNDED -> {
viewBinding.ivOrderStatus.setImageResource(R.drawable.icon_order_status_refunded)
viewBinding.tvOrderSubStatus.isVisible = true
viewBinding.tvOrderSubStatus.text = "退款金额:"
}
OrderStatus.ORDER_STATUS_REFUSE_REFUND -> {
viewBinding.ivOrderStatus.setImageResource(R.drawable.icon_order_status_refuse_refund)
viewBinding.tvOrderSubStatus.isVisible = true
viewBinding.tvOrderSubStatus.text = "如有疑问请联系卖家"
}
}
}
}
package com.yidian.shenghuoquan.border.ui.widget
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.databinding.DataBindingUtil
import com.yidian.shenghuoquan.border.R
import com.yidian.shenghuoquan.border.databinding.BorderViewOrderStatusBinding
import com.yidian.shenghuoquan.border.dto.OrderDetailDto
import com.yidian.shenghuoquan.border.manager.OrderStatus
import com.yidian.shenghuoquan.border.viewmodel.OrderStatusViewModel
/**
* author: yinjiacheng
* date: 2021/8/21 09:57
* description: 订单详情页-订单状态
*/
class OderStatusView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0) :
ConstraintLayout(context, attrs, defStyle) {
private val binding =
DataBindingUtil.inflate<BorderViewOrderStatusBinding>(LayoutInflater.from(getContext()), R.layout.border_view_order_status, this, true)
/**
* 设置订单状态
* @param status 订单状态
* @param data 订单详情
*/
fun setOrderStatus(status: OrderStatus, data: OrderDetailDto) {
binding.vm = OrderStatusViewModel()
binding.status = status
binding.data = data
}
}
......@@ -2,8 +2,9 @@ package com.yidian.shenghuoquan.border.ui.widget
import android.content.Context
import android.util.AttributeSet
import android.view.View
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.databinding.DataBindingUtil
import com.yidian.shenghuoquan.border.R
import com.yidian.shenghuoquan.border.databinding.BorderViewOrderCommodityInfoBinding
import com.yidian.shenghuoquan.border.dto.OrderDetailDto
......@@ -17,8 +18,13 @@ import com.yidian.shenghuoquan.border.manager.OrderStatus
class OrderCommodityInfoView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0) :
ConstraintLayout(context, attrs, defStyle) {
private val viewBinding =
BorderViewOrderCommodityInfoBinding.bind(View.inflate(getContext(), R.layout.border_view_order_commodity_info, this))
private val binding =
DataBindingUtil.inflate<BorderViewOrderCommodityInfoBinding>(
LayoutInflater.from(getContext()),
R.layout.border_view_order_commodity_info,
this,
true
)
/**
* 设置商品信息
......
......@@ -2,12 +2,14 @@ package com.yidian.shenghuoquan.border.ui.widget
import android.content.Context
import android.util.AttributeSet
import android.view.View
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.databinding.DataBindingUtil
import com.yidian.shenghuoquan.border.R
import com.yidian.shenghuoquan.border.databinding.BorderViewOrderConsigneeInfoBinding
import com.yidian.shenghuoquan.border.dto.OrderShippingInfo
import com.yidian.shenghuoquan.border.manager.OrderStatus
import com.yidian.shenghuoquan.border.viewmodel.OrderConsigneeInfoViewModel
/**
* author: yinjiacheng
......@@ -17,31 +19,34 @@ import com.yidian.shenghuoquan.border.manager.OrderStatus
class OrderConsigneeInfoView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0) :
ConstraintLayout(context, attrs, defStyle) {
private val viewBinding =
BorderViewOrderConsigneeInfoBinding.bind(View.inflate(getContext(), R.layout.border_view_order_consignee_info, this))
private val binding =
DataBindingUtil.inflate<BorderViewOrderConsigneeInfoBinding>(
LayoutInflater.from(getContext()),
R.layout.border_view_order_consignee_info,
this,
true
)
/**
* 设置收货人信息
* @param status 订单状态 确认订单时固定传ORDER_STATUS_CONFIRM
* @param info 收货人信息
*/
fun setConsigneeInfo(status: OrderStatus, info: OrderShippingInfo?) {
fun setConsigneeInfo(status: OrderStatus?, info: OrderShippingInfo?) {
if (status != OrderStatus.ORDER_STATUS_UNKNOWN && status != OrderStatus.ORDER_STATUS_CONFIRM) {
// 订单状态除未知和确认中 收件人信息禁止修改(仅展示)
disableModify()
}
info?.let {
viewBinding.etConsigneeName.setText(it.receiverName)
viewBinding.etConsigneePhone.setText(it.receiverMobile)
}
binding.vm = OrderConsigneeInfoViewModel()
binding.data = info
}
/**
* 禁止修改
*/
fun disableModify() {
viewBinding.etConsigneeName.keyListener = null
viewBinding.etConsigneePhone.keyListener = null
binding.etConsigneeName.keyListener = null
binding.etConsigneePhone.keyListener = null
}
}
......@@ -2,11 +2,14 @@ package com.yidian.shenghuoquan.border.ui.widget
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.databinding.DataBindingUtil
import com.yidian.shenghuoquan.border.R
import com.yidian.shenghuoquan.border.databinding.BorderViewOrderInfoBinding
import com.yidian.shenghuoquan.border.dto.OrderDetailDto
import com.yidian.shenghuoquan.border.manager.OrderStatus
import com.yidian.shenghuoquan.border.viewmodel.OrderInfoViewModel
/**
* author: yinjiacheng
......@@ -16,14 +19,16 @@ import com.yidian.shenghuoquan.border.manager.OrderStatus
class OrderInfoView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0) :
ConstraintLayout(context, attrs, defStyle) {
private val viewBinding = BorderViewOrderInfoBinding.bind(inflate(getContext(), R.layout.border_view_order_info, this))
private val binding =
DataBindingUtil.inflate<BorderViewOrderInfoBinding>(LayoutInflater.from(getContext()), R.layout.border_view_order_info, this, true)
/**
* 设置订单信息
* @param status 订单状态
* @param info 订单信息
*/
fun setOrderInfo(status: OrderStatus, info: OrderDetailDto) {
fun setOrderInfo(status: OrderStatus?, info: OrderDetailDto) {
binding.vm = OrderInfoViewModel()
binding.data = info
}
}
......@@ -2,14 +2,14 @@ package com.yidian.shenghuoquan.border.ui.widget
import android.content.Context
import android.util.AttributeSet
import android.view.View
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.view.isVisible
import androidx.databinding.DataBindingUtil
import com.yidian.shenghuoquan.border.R
import com.yidian.shenghuoquan.border.databinding.BorderViewOrderPickupPointInfoBinding
import com.yidian.shenghuoquan.border.dto.PlaceList
import com.yidian.shenghuoquan.border.manager.OrderStatus
import java.util.*
import com.yidian.shenghuoquan.border.viewmodel.OrderPickupPointViewModel
/**
* author: yinjiacheng
......@@ -19,28 +19,21 @@ import java.util.*
class OrderPickupPointInfoView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0) :
ConstraintLayout(context, attrs, defStyle) {
private val viewBinding =
BorderViewOrderPickupPointInfoBinding.bind(View.inflate(getContext(), R.layout.border_view_order_pickup_point_info, this))
private val binding =
DataBindingUtil.inflate<BorderViewOrderPickupPointInfoBinding>(
LayoutInflater.from(getContext()),
R.layout.border_view_order_pickup_point_info,
this,
true
)
/**
* 设置自提点
* @param status 订单状态 确认订单时固定传ORDER_STATUS_CONFIRM
* @param info 自提点信息
*/
fun setPickupPoint(status: OrderStatus, info: PlaceList?) {
// 订单状态除未知和确认中 自提点选择入口隐藏
if (status != OrderStatus.ORDER_STATUS_UNKNOWN && status != OrderStatus.ORDER_STATUS_CONFIRM) {
viewBinding.ivPickupPointSelect.isVisible = false
}
// 填充自提点信息
info?.let {
viewBinding.tvPickupPoint.isVisible = true
viewBinding.tvPickupPointName.text = it.takePlaceName
viewBinding.tvPickupPointAddress.isVisible = true
viewBinding.tvPickupPointAddress.text = it.address
viewBinding.tvPickupPointContact.isVisible = true
viewBinding.tvPickupPointContact.text =
String.format(Locale.getDefault(), resources.getString(R.string.pickup_point_contract), info.contactName, info.phone)
}
fun setPickupPoint(status: OrderStatus?, info: PlaceList?) {
binding.vm = OrderPickupPointViewModel()
binding.data = info
}
}
package com.yidian.shenghuoquan.border.viewmodel
import com.yidian.bcommon.mvvm.BaseViewModel
/**
* author: yinjiacheng
* date: 2021/8/23 13:54
* description: 订单商品信息
*/
class OrderCommodityInfoViewModel : BaseViewModel() {
}
package com.yidian.shenghuoquan.border.viewmodel
import com.yidian.bcommon.mvvm.BaseViewModel
/**
* author: yinjiacheng
* date: 2021/8/23 13:54
* description: 订单收货人信息
*/
class OrderConsigneeInfoViewModel : BaseViewModel() {
}
package com.yidian.shenghuoquan.border.viewmodel
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import com.yidian.bcommon.mvvm.BaseViewModel
import com.yidian.shenghuoquan.border.dto.OrderDetailDto
import com.yidian.shenghuoquan.border.http.OrderRemoteDataSource
import com.yidian.shenghuoquan.border.http.callback.IGetOrderDetailCallback
/**
* author: yinjiacheng
* date: 2021/8/21 09:31
* description: 订单详情页
*/
class OrderDetailViewModel : BaseViewModel() {
private val _orderDetailData = MutableLiveData<OrderDetailDto>()
val orderDetailData: LiveData<OrderDetailDto> = _orderDetailData
/**
* 请求订单详情
*/
fun requestOrderDetail(orderId: String) {
OrderRemoteDataSource.getOrderDetail(object : IGetOrderDetailCallback {
override fun getOrderDetailSuccess(result: OrderDetailDto?) {
result?.let { _orderDetailData.value = it }
}
override fun getOrderDetailFailure(message: String?) {
}
}, hashMapOf("order_id" to orderId))
}
}
package com.yidian.shenghuoquan.border.viewmodel
import com.yidian.bcommon.mvvm.BaseViewModel
/**
* author: yinjiacheng
* date: 2021/8/23 10:45
* description: 订单信息
*/
class OrderInfoViewModel : BaseViewModel() {
/**
* 复制订单
*/
fun copyOrderNo() {
}
}
package com.yidian.shenghuoquan.border.ui
package com.yidian.shenghuoquan.border.viewmodel
import com.yidian.bcommon.mvvm.BaseViewModel
/**
* author: yinjiacheng
* date: 2021/8/21 09:31
* description: 订单详情页
* date: 2021/8/23 13:52
* description: 订单自提点
*/
class OrderDetailViewModel : BaseViewModel() {
class OrderPickupPointViewModel : BaseViewModel() {
}
package com.yidian.shenghuoquan.border.viewmodel
import android.widget.ImageView
import android.widget.TextView
import androidx.databinding.BindingAdapter
import com.yidian.bcommon.mvvm.BaseViewModel
import com.yidian.shenghuoquan.border.R
import com.yidian.shenghuoquan.border.dto.OrderDetailDto
import com.yidian.shenghuoquan.border.manager.OrderStatus
/**
* author: yinjiacheng
* date: 2021/8/23 13:50
* description: 订单状态
*/
class OrderStatusViewModel : BaseViewModel() {
companion object {
/**
* 订单状态图标
* @param target 目标ImageView
* @param status 订单状态
*/
@BindingAdapter("orderStatusImage")
@JvmStatic
fun setOrderStatusImage(target: ImageView, status: OrderStatus?) {
target.setImageResource(
when (status) {
OrderStatus.ORDER_STATUS_PAID -> R.drawable.icon_order_status_paid
OrderStatus.ORDER_STATUS_WAIT_REFUND -> R.drawable.icon_order_status_wait_refund
OrderStatus.ORDER_STATUS_ON_REFUND -> R.drawable.icon_order_status_on_refund
OrderStatus.ORDER_STATUS_REFUNDED -> R.drawable.icon_order_status_refunded
OrderStatus.ORDER_STATUS_REFUSE_REFUND -> R.drawable.icon_order_status_refuse_refund
else -> R.drawable.icon_order_status_paid
}
)
}
/**
* 订单状态描述
* @param target 目标TextView
* @param status 订单状态
* @param data 订单详情
*/
@BindingAdapter(value = ["orderStatusDescription", "orderDetailData"], requireAll = true)
@JvmStatic
fun setOrderStatusText(target: TextView, status: OrderStatus?, data: OrderDetailDto?) {
target.text = when (status) {
OrderStatus.ORDER_STATUS_WAIT_REFUND -> "待商家确认"
OrderStatus.ORDER_STATUS_REFUNDED -> "退款金额: " + data?.refundAmount
OrderStatus.ORDER_STATUS_REFUSE_REFUND -> "如有疑问请联系卖家"
else -> ""
}
}
}
}
......@@ -6,7 +6,7 @@
<variable
name="vm"
type="com.yidian.shenghuoquan.border.ui.OrderDetailViewModel" />
type="com.yidian.shenghuoquan.border.viewmodel.OrderDetailViewModel" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
......@@ -34,7 +34,7 @@
android:paddingEnd="@dimen/dp16"
android:paddingBottom="@dimen/dp46">
<com.yidian.shenghuoquan.border.ui.widget.OderStatusInfoView
<com.yidian.shenghuoquan.border.ui.widget.OderStatusView
android:id="@+id/sv_order_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_solid_ffffff_corner_20"
android:paddingStart="@dimen/dp16"
android:paddingTop="20dp"
android:paddingEnd="@dimen/dp16"
android:paddingBottom="20dp">
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<TextView
android:id="@+id/tv_consignee_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/consignee_name"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp16"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<data>
<EditText
android:id="@+id/et_consignee_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp12"
android:autofillHints="123"
android:background="@null"
android:hint="@string/please_input_consignee_name"
android:inputType="text"
android:textColor="@color/color_333333"
android:textColorHint="@color/color_999999"
android:textCursorDrawable="@drawable/shape_bg_input_cursor"
android:textSize="@dimen/sp16"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/tv_consignee_name"
app:layout_constraintTop_toTopOf="@id/tv_consignee_name" />
<variable
name="vm"
type="com.yidian.shenghuoquan.border.viewmodel.OrderConsigneeInfoViewModel" />
<TextView
android:id="@+id/tv_consignee_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp20"
android:text="@string/consignee_phone"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp16"
app:layout_constraintStart_toStartOf="@id/tv_consignee_name"
app:layout_constraintTop_toBottomOf="@id/tv_consignee_name" />
<variable
name="data"
type="com.yidian.shenghuoquan.border.dto.OrderShippingInfo" />
</data>
<EditText
android:id="@+id/et_consignee_phone"
android:layout_width="0dp"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:hint="@string/please_input_consignee_phone"
android:inputType="phone"
android:maxLength="11"
android:textColor="@color/color_333333"
android:textColorHint="@color/color_999999"
android:textCursorDrawable="@drawable/shape_bg_input_cursor"
android:textSize="@dimen/sp16"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/et_consignee_name"
app:layout_constraintTop_toTopOf="@id/tv_consignee_phone" />
android:background="@drawable/shape_solid_ffffff_corner_20"
android:paddingStart="@dimen/dp16"
android:paddingTop="20dp"
android:paddingEnd="@dimen/dp16"
android:paddingBottom="20dp">
<TextView
android:id="@+id/tv_consignee_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/consignee_name"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp16"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/et_consignee_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp12"
android:autofillHints="123"
android:background="@null"
android:hint="@string/please_input_consignee_name"
android:inputType="text"
android:text="@{data.receiverName}"
android:textColor="@color/color_333333"
android:textColorHint="@color/color_999999"
android:textCursorDrawable="@drawable/shape_bg_input_cursor"
android:textSize="@dimen/sp16"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/tv_consignee_name"
app:layout_constraintTop_toTopOf="@id/tv_consignee_name" />
<TextView
android:id="@+id/tv_consignee_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp20"
android:text="@string/consignee_phone"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp16"
app:layout_constraintStart_toStartOf="@id/tv_consignee_name"
app:layout_constraintTop_toBottomOf="@id/tv_consignee_name" />
<EditText
android:id="@+id/et_consignee_phone"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@null"
android:hint="@string/please_input_consignee_phone"
android:inputType="phone"
android:maxLength="11"
android:text="@{data.receiverMobile}"
android:textColor="@color/color_333333"
android:textColorHint="@color/color_999999"
android:textCursorDrawable="@drawable/shape_bg_input_cursor"
android:textSize="@dimen/sp16"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/et_consignee_name"
app:layout_constraintTop_toTopOf="@id/tv_consignee_phone" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_solid_ffffff_corner_20"
android:paddingStart="@dimen/dp16"
android:paddingTop="@dimen/dp20"
android:paddingEnd="@dimen/dp16"
android:paddingBottom="@dimen/dp20">
xmlns:tools="http://schemas.android.com/tools">
<TextView
android:id="@+id/tv_pickup_point"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pickup_point"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp16"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<data>
<TextView
android:id="@+id/tv_pickup_point_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp12"
android:text="@string/please_select_pickup_point"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp16"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@id/tv_pickup_point"
app:layout_constraintTop_toTopOf="parent" />
<variable
name="vm"
type="com.yidian.shenghuoquan.border.viewmodel.OrderPickupPointViewModel" />
<ImageView
android:id="@+id/iv_pickup_point_select"
android:layout_width="@dimen/dp14"
android:layout_height="@dimen/dp14"
android:src="@drawable/icon_next"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<variable
name="data"
type="com.yidian.shenghuoquan.border.dto.PlaceList" />
<TextView
android:id="@+id/tv_pickup_point_address"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp8"
android:ellipsize="end"
android:maxLines="2"
android:text="@string/pickup_point"
android:textColor="@color/color_999999"
android:textSize="@dimen/sp14"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/tv_pickup_point_name"
app:layout_constraintTop_toBottomOf="@id/tv_pickup_point_name"
tools:text="经济技术开发区燕郊顺路123号经济技术开发区燕郊顺路123号经济技术开发区燕郊顺路123号经济技术开发区燕郊顺路123号" />
</data>
<TextView
android:id="@+id/tv_pickup_point_contact"
android:layout_width="wrap_content"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp4"
android:text="@string/pickup_point"
android:textColor="@color/color_999999"
android:textSize="@dimen/sp14"
android:visibility="gone"
app:layout_constraintStart_toStartOf="@id/tv_pickup_point_name"
app:layout_constraintTop_toBottomOf="@id/tv_pickup_point_address"
tools:text="提货点联系人:面团儿" />
android:background="@drawable/shape_solid_ffffff_corner_20"
android:paddingStart="@dimen/dp16"
android:paddingTop="@dimen/dp20"
android:paddingEnd="@dimen/dp16"
android:paddingBottom="@dimen/dp20">
<TextView
android:id="@+id/tv_pickup_point"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pickup_point"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp16"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_pickup_point_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp12"
android:text="@{data.takePlaceName}"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp16"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@id/tv_pickup_point"
app:layout_constraintTop_toTopOf="parent"
tools:text="维多利亚3层" />
<ImageView
android:id="@+id/iv_pickup_point_select"
android:layout_width="@dimen/dp14"
android:layout_height="@dimen/dp14"
android:src="@drawable/icon_next"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_pickup_point_address"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp8"
android:ellipsize="end"
android:maxLines="2"
android:text="@{data.address}"
android:textColor="@color/color_999999"
android:textSize="@dimen/sp14"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/tv_pickup_point_name"
app:layout_constraintTop_toBottomOf="@id/tv_pickup_point_name"
tools:text="经济技术开发区燕郊顺路123号经济技术开发区燕郊顺路123号经济技术开发区燕郊顺路123号经济技术开发区燕郊顺路123号" />
<TextView
android:id="@+id/tv_pickup_point_contact"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp4"
android:text="@{@string/pickup_point_contract(data.contactName, data.phone)}"
android:textColor="@color/color_999999"
android:textSize="@dimen/sp14"
app:layout_constraintStart_toStartOf="@id/tv_pickup_point_name"
app:layout_constraintTop_toBottomOf="@id/tv_pickup_point_address"
tools:text="提货点联系人:面团儿" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<import type="com.yidian.shenghuoquan.border.manager.OrderStatus" />
<import type="android.view.View" />
<variable
name="vm"
type="com.yidian.shenghuoquan.border.viewmodel.OrderStatusViewModel" />
<variable
name="status"
type="com.yidian.shenghuoquan.border.manager.OrderStatus" />
<variable
name="data"
type="com.yidian.shenghuoquan.border.dto.OrderDetailDto" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/iv_order_status"
android:layout_width="@dimen/dp24"
android:layout_height="@dimen/dp24"
app:layout_constraintBottom_toBottomOf="@id/tv_order_sub_status"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_order_status"
app:orderStatusImage="@{status}"
tools:src="@drawable/icon_order_status_paid" />
<TextView
android:id="@+id/tv_order_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp8"
android:text="@{status.text}"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp22"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@id/iv_order_status"
app:layout_constraintTop_toTopOf="parent"
tools:text="已支付" />
<TextView
android:id="@+id/tv_order_sub_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp8"
android:layout_marginTop="@dimen/dp8"
android:textColor="@color/color_666666"
android:textSize="@dimen/sp14"
android:visibility="@{status == OrderStatus.ORDER_STATUS_WAIT_REFUND || status == OrderStatus.ORDER_STATUS_REFUNDED || status == OrderStatus.ORDER_STATUS_REFUSE_REFUND ? View.VISIBLE : View.GONE}"
app:orderStatusDescription="@{status}"
app:orderDetailData="@{data}"
app:layout_constraintStart_toEndOf="@id/iv_order_status"
app:layout_constraintTop_toBottomOf="@id/tv_order_status"
tools:text="待商家确认" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/iv_order_status"
android:layout_width="@dimen/dp24"
android:layout_height="@dimen/dp24"
app:layout_constraintBottom_toBottomOf="@id/tv_order_sub_status"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_order_status"
tools:src="@drawable/icon_order_status_paid" />
<TextView
android:id="@+id/tv_order_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp8"
android:textColor="@color/color_333333"
android:textSize="@dimen/sp22"
android:textStyle="bold"
app:layout_constraintStart_toEndOf="@id/iv_order_status"
app:layout_constraintTop_toTopOf="parent"
tools:text="已支付" />
<TextView
android:id="@+id/tv_order_sub_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp8"
android:layout_marginTop="@dimen/dp8"
android:textColor="@color/color_666666"
android:textSize="@dimen/sp14"
android:textStyle="bold"
android:visibility="gone"
app:layout_constraintStart_toEndOf="@id/iv_order_status"
app:layout_constraintTop_toBottomOf="@id/tv_order_status"
tools:text="待商家确认" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -20,4 +20,5 @@
<string name="refund_apply">退款申请</string>
<string name="refund_time">退款时间</string>
<string name="order_remark">订单备注</string>
<string name="refuse_time">拒绝时间</string>
</resources>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment