Commit f5d2397d authored by yinjiacheng's avatar yinjiacheng

add 订单详情下拉刷新逻辑

parent 903dd942
...@@ -36,16 +36,29 @@ class OrderDetailActivity : BaseMvvmActivity<BorderActivityOrderDetailBinding, O ...@@ -36,16 +36,29 @@ class OrderDetailActivity : BaseMvvmActivity<BorderActivityOrderDetailBinding, O
} }
override fun initView() { override fun initView() {
initSmartRefresh()
vm.orderDetailData.observe(this, { vm.orderDetailData.observe(this, {
// 结束刷新
binding.rlOrderDetail.finishRefresh(it != null)
if (it == null) return@observe
// 获取当前订单状态 // 获取当前订单状态
val status = OrderStatusManager.getOrderStatus(it.orderStatus) val status = OrderStatusManager.getOrderStatus(it.orderStatus)
// 更新UI
binding.svOrderStatus.setOrderStatus(status, it) binding.svOrderStatus.setOrderStatus(status, it)
binding.pvPickupPointInfo.setPickupPoint(it.placeList) binding.pvPickupPointInfo.setPickupPoint(it.placeList)
binding.ivConsigneeInfo.setConsigneeInfo(status, it.orderShippingInfo) binding.ivConsigneeInfo.setConsigneeInfo(status, it.orderShippingInfo)
binding.ivCommodityInfo.setCommodityInfo(status, it) binding.ivCommodityInfo.setCommodityInfo(status, it)
binding.ivOrderInfo.setOrderInfo(status, it) binding.ivOrderInfo.setOrderInfo(status, it)
}) })
// 请求订单详情 binding.rlOrderDetail.autoRefresh()
orderId?.let { vm.requestOrderDetail(it) } }
private fun initSmartRefresh() {
// 禁止上拉加载更多
binding.rlOrderDetail.setEnableLoadMore(false)
binding.rlOrderDetail.setOnRefreshListener {
// 请求订单详情
orderId?.let { vm.requestOrderDetail(it) }
}
} }
} }
...@@ -99,9 +99,10 @@ class SelectPickupPointActivity : BaseMvvmActivity<BorderActivitySelectPickupPoi ...@@ -99,9 +99,10 @@ class SelectPickupPointActivity : BaseMvvmActivity<BorderActivitySelectPickupPoi
* 更新列表数据 * 更新列表数据
*/ */
private fun updateData(data: PickupPointListDto?) { private fun updateData(data: PickupPointListDto?) {
if (data == null) return
// 标记当前选中的自提点 // 标记当前选中的自提点
adapter.setSelectedId(params?.get(IntentConstants.KEY_EXTRA_PICKUP_POINT_ID)?.let { id -> id as Long }) adapter.setSelectedId(params?.get(IntentConstants.KEY_EXTRA_PICKUP_POINT_ID)?.let { id -> id as Long })
adapter.updateData(data?.list) adapter.updateData(data.list)
} }
/** /**
......
...@@ -14,8 +14,8 @@ import com.yidian.shenghuoquan.border.http.callback.IGetOrderDetailCallback ...@@ -14,8 +14,8 @@ import com.yidian.shenghuoquan.border.http.callback.IGetOrderDetailCallback
*/ */
class OrderDetailViewModel : BaseViewModel() { class OrderDetailViewModel : BaseViewModel() {
private val _orderDetailData = MutableLiveData<OrderDetailDto>() private val _orderDetailData = MutableLiveData<OrderDetailDto?>()
val orderDetailData: LiveData<OrderDetailDto> = _orderDetailData val orderDetailData: LiveData<OrderDetailDto?> = _orderDetailData
/** /**
* 请求订单详情 * 请求订单详情
...@@ -23,11 +23,11 @@ class OrderDetailViewModel : BaseViewModel() { ...@@ -23,11 +23,11 @@ class OrderDetailViewModel : BaseViewModel() {
fun requestOrderDetail(orderId: String) { fun requestOrderDetail(orderId: String) {
OrderRemoteDataSource.getOrderDetail(object : IGetOrderDetailCallback { OrderRemoteDataSource.getOrderDetail(object : IGetOrderDetailCallback {
override fun getOrderDetailSuccess(result: OrderDetailDto?) { override fun getOrderDetailSuccess(result: OrderDetailDto?) {
result?.let { _orderDetailData.value = it } _orderDetailData.value = result
} }
override fun getOrderDetailFailure(message: String?) { override fun getOrderDetailFailure(message: String?) {
_orderDetailData.value = null
} }
}, hashMapOf("order_id" to orderId)) }, hashMapOf("order_id" to orderId))
} }
......
...@@ -24,58 +24,65 @@ ...@@ -24,58 +24,65 @@
app:CommonTopBarView_title_text_color="@color/white" app:CommonTopBarView_title_text_color="@color/white"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<ScrollView <com.scwang.smart.refresh.layout.SmartRefreshLayout
android:id="@+id/rl_order_detail"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/bv_top_bar"> app:layout_constraintTop_toBottomOf="@id/bv_top_bar">
<androidx.constraintlayout.widget.ConstraintLayout <ScrollView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent">
android:paddingStart="@dimen/dp16"
android:paddingEnd="@dimen/dp16"
android:paddingBottom="@dimen/dp46">
<com.yidian.shenghuoquan.border.ui.widget.OderStatusView
android:id="@+id/sv_order_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp20"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.yidian.shenghuoquan.border.ui.widget.OrderPickupPointInfoView <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/pv_pickup_point_info"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp20" android:paddingStart="@dimen/dp16"
app:layout_constraintTop_toBottomOf="@id/sv_order_status" /> android:paddingEnd="@dimen/dp16"
android:paddingBottom="@dimen/dp46">
<com.yidian.shenghuoquan.border.ui.widget.OrderConsigneeInfoView <com.yidian.shenghuoquan.border.ui.widget.OderStatusView
android:id="@+id/iv_consignee_info" android:id="@+id/sv_order_status"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp8" android:layout_marginTop="@dimen/dp20"
app:layout_constraintTop_toBottomOf="@id/pv_pickup_point_info" /> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.yidian.shenghuoquan.border.ui.widget.OrderCommodityInfoView <com.yidian.shenghuoquan.border.ui.widget.OrderPickupPointInfoView
android:id="@+id/iv_commodity_info" android:id="@+id/pv_pickup_point_info"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp8" android:layout_marginTop="@dimen/dp20"
app:layout_constraintTop_toBottomOf="@id/iv_consignee_info" /> app:layout_constraintTop_toBottomOf="@id/sv_order_status" />
<com.yidian.shenghuoquan.border.ui.widget.OrderInfoView <com.yidian.shenghuoquan.border.ui.widget.OrderConsigneeInfoView
android:id="@+id/iv_order_info" android:id="@+id/iv_consignee_info"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp8" android:layout_marginTop="@dimen/dp8"
app:layout_constraintTop_toBottomOf="@id/iv_commodity_info" /> app:layout_constraintTop_toBottomOf="@id/pv_pickup_point_info" />
<com.yidian.shenghuoquan.border.ui.widget.OrderCommodityInfoView
android:id="@+id/iv_commodity_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp8"
app:layout_constraintTop_toBottomOf="@id/iv_consignee_info" />
<com.yidian.shenghuoquan.border.ui.widget.OrderInfoView
android:id="@+id/iv_order_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp8"
app:layout_constraintTop_toBottomOf="@id/iv_commodity_info" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </ScrollView>
</ScrollView> </com.scwang.smart.refresh.layout.SmartRefreshLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</layout> </layout>
\ 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