lmw
2023-06-13 adf8013576cbdd12e5ebea8ff7e32baf5d558b27
公务出行订单列表
6个文件已修改
1个文件已添加
199 ■■■■■ 已修改文件
app/src/main/java/com/kuanzhai/user/network/entity/OrderData.kt 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/kuanzhai/user/ui/mine/TripOrderFragment.kt 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/kuanzhai/user/ui/mine/adapter/OfficialOrderAdapter.kt 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/kuanzhai/user/ui/trip/OrderCancelDetailActivity.kt 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_order_cancel_detail.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_safe.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/item_order.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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->"已处理"
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
                                )
                        }
                    }
                }
            }
        }
    }
app/src/main/java/com/kuanzhai/user/ui/mine/adapter/OfficialOrderAdapter.kt
New file
@@ -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
        }
    }
}
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
                }
            }
        }
    }
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="取消方:"
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"
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>