Commit f5d2397d authored by yinjiacheng's avatar yinjiacheng

add 订单详情下拉刷新逻辑

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