From adf8013576cbdd12e5ebea8ff7e32baf5d558b27 Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期二, 13 六月 2023 18:30:19 +0800 Subject: [PATCH] 公务出行订单列表 --- app/src/main/java/com/kuanzhai/user/ui/mine/TripOrderFragment.kt | 52 +++++++++++++ app/src/main/java/com/kuanzhai/user/network/entity/OrderData.kt | 23 +++++ app/src/main/res/layout/activity_order_cancel_detail.xml | 1 app/src/main/res/layout/activity_safe.xml | 2 app/src/main/res/layout/item_order.xml | 28 +++++++ app/src/main/java/com/kuanzhai/user/ui/trip/OrderCancelDetailActivity.kt | 8 ++ app/src/main/java/com/kuanzhai/user/ui/mine/adapter/OfficialOrderAdapter.kt | 85 +++++++++++++++++++++ 7 files changed, 199 insertions(+), 0 deletions(-) diff --git a/app/src/main/java/com/kuanzhai/user/network/entity/OrderData.kt b/app/src/main/java/com/kuanzhai/user/network/entity/OrderData.kt index c5f4cc1..6567198 100644 --- a/app/src/main/java/com/kuanzhai/user/network/entity/OrderData.kt +++ b/app/src/main/java/com/kuanzhai/user/network/entity/OrderData.kt @@ -57,6 +57,7 @@ var state: Int = 0, //订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)加个15作为改派成功 var auditStatus: Int = -1, //审核状态(-1 其他正常订单 -2取消订单 0待审核 1审核通过 2拒绝) val auditRemark: String = "", + val auditUser: String = "", val time: String = "", val travelMoney: Double = 0.0, val roadTollMoney: Double = 0.0, @@ -117,6 +118,28 @@ else->"" } + fun getOfficialStateStr() = when(state){ + 1->{ + when(auditStatus){ + 0->"待处理" + 2->"已处理" + -2->"已取消" + else->"等待应答" + } + } + 2,3->"等待接驾" + 4->"等待上车" + 5->"服务中" + 6->"待确认费用" + 7->"待支付" + 8->"待评价" + 9->"已完成" + 10->"已取消" + 11->"改派中" + 12->"取消待支付" + else->"" + } + fun getCharterState() = when(state){ 1->"待处理" 2->"已处理" diff --git a/app/src/main/java/com/kuanzhai/user/ui/mine/TripOrderFragment.kt b/app/src/main/java/com/kuanzhai/user/ui/mine/TripOrderFragment.kt index 6694c25..403ab67 100644 --- a/app/src/main/java/com/kuanzhai/user/ui/mine/TripOrderFragment.kt +++ b/app/src/main/java/com/kuanzhai/user/ui/mine/TripOrderFragment.kt @@ -22,6 +22,7 @@ import com.kuanzhai.user.ui.crosscity.PayCrossActivity import com.kuanzhai.user.ui.mine.adapter.CharterOrderAdapter import com.kuanzhai.user.ui.mine.adapter.LogisticsAdapter +import com.kuanzhai.user.ui.mine.adapter.OfficialOrderAdapter import com.kuanzhai.user.ui.mine.adapter.TripOrderAdapter import com.kuanzhai.user.ui.trip.OrderCancelDetailActivity import com.kuanzhai.user.ui.trip.OrderDetailActivity @@ -62,6 +63,8 @@ payThankDialog.show(childFragmentManager, "thank") } }) + TYPE_OFFICIAL -> OfficialOrderAdapter(datas) + TYPE_LOGISTICS_SAME, TYPE_LOGISTICS_CROSS -> LogisticsAdapter(datas, object : LogisticsAdapter.ClickCallback { override fun onPay(index: Int) { @@ -211,6 +214,55 @@ } } } + Const.OrderType.TYPE_OFFICIAL->{ + if (order.auditStatus == 2){ + startActivityForResult<OrderCancelDetailActivity>( + 1, + "id" to order.orderId, + "type" to order.orderType + ) + } else if (order.auditStatus == 0){ + startActivityForResult<TripActivity>( + 1, + "id" to order.orderId, + "type" to order.orderType + ) + }else{ + when (order.state) { + in (1..6) -> startActivityForResult<TripActivity>( + 1, + "id" to order.orderId, + "type" to order.orderType + ) + 10 -> { + startActivityForResult<OrderCancelDetailActivity>( + 1, + "id" to order.orderId, + "type" to order.orderType + ) + } + 11 -> { + startActivityForResult<TripActivity>( + 1, + "id" to order.orderId, + "type" to order.orderType + ) + } + 7, 12 -> + startActivityForResult<OrderDetailActivity>( + 1, + "id" to order.orderId, + "type" to order.orderType + ) + else -> + startActivityForResult<OrderDetailWithMapActivity>( + 1, + "id" to order.orderId, + "type" to order.orderType + ) + } + } + } } } } diff --git a/app/src/main/java/com/kuanzhai/user/ui/mine/adapter/OfficialOrderAdapter.kt b/app/src/main/java/com/kuanzhai/user/ui/mine/adapter/OfficialOrderAdapter.kt new file mode 100644 index 0000000..a5044b8 --- /dev/null +++ b/app/src/main/java/com/kuanzhai/user/ui/mine/adapter/OfficialOrderAdapter.kt @@ -0,0 +1,85 @@ +package com.kuanzhai.user.ui.mine.adapter + +import android.view.View +import android.widget.LinearLayout +import android.widget.TextView +import androidx.core.os.bundleOf +import cn.sinata.xldutils.activity.BaseActivity +import cn.sinata.xldutils.adapter.HFRecyclerAdapter +import cn.sinata.xldutils.adapter.util.ViewHolder +import cn.sinata.xldutils.gone +import cn.sinata.xldutils.utils.myToast +import cn.sinata.xldutils.visible +import com.kuanzhai.user.R +import com.kuanzhai.user.dialog.TipDialog +import com.kuanzhai.user.interfaces.StringCallback +import com.kuanzhai.user.network.HttpManager +import com.kuanzhai.user.network.entity.Order +import com.kuanzhai.user.network.request +import com.kuanzhai.user.utils.Const +import org.jetbrains.anko.textColorResource + +data class OfficialOrderAdapter(val datas:ArrayList<Order>):HFRecyclerAdapter<Order>(datas, R.layout.item_order) { + override fun onBind(holder: ViewHolder, position: Int, data: Order) { + holder.bind<TextView>(R.id.tv_tag).gone() + holder.bind<View>(R.id.tv_thank).gone() + holder.bind<TextView>(R.id.tv_thank_money).gone() + + + holder.setText(R.id.tv_time,data.orderTime) + holder.setText(R.id.tv_state,data.getOfficialStateStr()) + holder.bind<TextView>(R.id.tv_state).textColorResource = data.getStateColor() + + val tvTime = holder.bind<TextView>(R.id.tv_trip_time) + val tvStart = holder.bind<TextView>(R.id.tv_start) + val tvEnd = holder.bind<TextView>(R.id.tv_end) + val ll_check = holder.bind<LinearLayout>(R.id.ll_check) + if (data.auditStatus == 0||data.auditStatus == 2){ //待审核和审核失败 + ll_check.visible() + val tvAction = holder.bind<TextView>(R.id.tv_action_check) + tvAction.text = if (data.auditStatus == 0) "取消订单" else "详情" + tvAction.setOnClickListener { + if (data.auditStatus == 0){ + val tipDialog = TipDialog() + tipDialog.arguments = bundleOf("msg" to "是否确认取消订单?") + tipDialog.setCallback(object :TipDialog.OnClickCallback{ + override fun onOk() { + HttpManager.cancelOrder(data.orderId,data.orderType).request(context as BaseActivity){_,_-> + (context as BaseActivity).myToast("取消成功") + data.state = 10 + data.auditStatus = -2 + notifyItemChanged(position) + } + } + + override fun onCancel() { + } + }) + tipDialog.show((context as BaseActivity).supportFragmentManager,"cancel") + } + } + tvTime.setCompoundDrawablesRelativeWithIntrinsicBounds(0,0,0,0) + tvStart.setCompoundDrawablesRelativeWithIntrinsicBounds(0,0,0,0) + tvEnd.setCompoundDrawablesRelativeWithIntrinsicBounds(0,0,0,0) + tvStart.textColorResource = R.color.textColor66 + tvEnd.textColorResource = R.color.textColor66 + }else{ + ll_check.gone() + tvTime.setCompoundDrawablesRelativeWithIntrinsicBounds(R.mipmap.icon_time,0,0,0) + tvStart.setCompoundDrawablesRelativeWithIntrinsicBounds(R.mipmap.icon_starting_point,0,0,0) + tvEnd.setCompoundDrawablesRelativeWithIntrinsicBounds(R.mipmap.icon_end_point,0,0,0) + tvStart.textColorResource = R.color.textColor + tvEnd.textColorResource = R.color.textColor + } + + holder.setText(R.id.tv_trip_time,data.time) + holder.setText(R.id.tv_start,data.startAddress) + holder.setText(R.id.tv_end,data.endAddress) + holder.bind<TextView>(R.id.tv_count).apply { + visibility = if (data.orderType == Const.OrderType.TYPE_CROSS_CITY) { + text = String.format("%d人",data.num) + View.VISIBLE + } else View.GONE + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/kuanzhai/user/ui/trip/OrderCancelDetailActivity.kt b/app/src/main/java/com/kuanzhai/user/ui/trip/OrderCancelDetailActivity.kt index 94ebc47..5154f86 100644 --- a/app/src/main/java/com/kuanzhai/user/ui/trip/OrderCancelDetailActivity.kt +++ b/app/src/main/java/com/kuanzhai/user/ui/trip/OrderCancelDetailActivity.kt @@ -4,6 +4,7 @@ import com.kuanzhai.user.network.HttpManager import com.kuanzhai.user.network.request import com.kuanzhai.user.ui.TransparentStatusBarActivity +import com.kuanzhai.user.utils.Const import kotlinx.android.synthetic.main.activity_order_cancel_detail.* class OrderCancelDetailActivity:TransparentStatusBarActivity() { @@ -31,6 +32,13 @@ tv_money.text = String.format("%.2f",it.cancelMoney) tv_reason.text = it.cancelReason tv_describe.text = if (it.cancelRemark.isEmpty()) "无" else it.cancelRemark + if (type == Const.OrderType.TYPE_OFFICIAL&&it.auditStatus == 2){ + title = "审核失败" + tv_1.text = "审核方" + tv_side.text = it.auditUser + tv_reason.text = "审核不通过" + tv_reason.text = it.auditRemark + } } } } diff --git a/app/src/main/res/layout/activity_order_cancel_detail.xml b/app/src/main/res/layout/activity_order_cancel_detail.xml index a5719fc..75e9546 100644 --- a/app/src/main/res/layout/activity_order_cancel_detail.xml +++ b/app/src/main/res/layout/activity_order_cancel_detail.xml @@ -120,6 +120,7 @@ android:textStyle="bold" tools:text="无"/> <TextView + android:id="@+id/tv_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="取消方:" diff --git a/app/src/main/res/layout/activity_safe.xml b/app/src/main/res/layout/activity_safe.xml index 91567c8..17a26da 100644 --- a/app/src/main/res/layout/activity_safe.xml +++ b/app/src/main/res/layout/activity_safe.xml @@ -23,6 +23,7 @@ android:layout_height="wrap_content" android:id="@+id/tv_real_name" android:text="实名认证" + android:visibility="gone" style="@style/style_form_text_setting" android:layout_marginEnd="14dp" android:layout_marginStart="14dp" @@ -31,6 +32,7 @@ <View style="@style/style_form_divider_line" android:layout_marginStart="14dp" android:layout_marginEnd="14dp" + android:visibility="gone" app:layout_constraintTop_toBottomOf="@id/tv_real_name"/> <TextView android:layout_width="wrap_content" diff --git a/app/src/main/res/layout/item_order.xml b/app/src/main/res/layout/item_order.xml index 2f44901..eefc055 100644 --- a/app/src/main/res/layout/item_order.xml +++ b/app/src/main/res/layout/item_order.xml @@ -133,5 +133,33 @@ android:background="@drawable/bg_thank" android:layout_marginTop="24dp" android:padding="8dp"/> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:id="@+id/ll_check" + android:visibility="gone" + app:layout_constraintTop_toBottomOf="@id/tv_end"> + <View + android:layout_width="match_parent" + android:layout_height="1px" + android:background="@color/dividing_line_color" + android:layout_marginTop="13dp" + android:layout_marginStart="20dp"/> + <TextView + android:id="@+id/tv_action_check" + android:layout_width="86dp" + android:layout_height="wrap_content" + android:text="详情" + android:textColor="@color/colorPrimary" + android:textSize="15sp" + android:layout_gravity="end" + android:textStyle="bold" + android:gravity="center" + android:background="@drawable/bg_orange_line_4dp" + android:paddingVertical="7dp" + android:layout_marginTop="12dp" + android:layout_marginEnd="7dp"/> + </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file -- Gitblit v1.7.1