18034727885
2026-07-31 909cc48c563b8f10609f704332f7ab30311d1e08
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package com.igo.user.ui.mine.adapter
 
import android.view.View
import android.widget.TextView
import cn.sinata.xldutils.adapter.HFRecyclerAdapter
import cn.sinata.xldutils.adapter.util.ViewHolder
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.toBrowser
import cn.sinata.xldutils.utils.myToast
import cn.sinata.xldutils.visible
import com.igo.user.R
import com.igo.user.extension.extClearInvalidZero
import com.igo.user.network.entity.Order
import org.jetbrains.anko.sdk27.coroutines.onClick
import org.jetbrains.anko.textColorResource
 
class LogisticsAdapter(datas: ArrayList<Order>,private val callback:ClickCallback) : HFRecyclerAdapter<Order>(datas, R.layout.item_logistics_order) {
    override fun onBind(holder: ViewHolder, position: Int, data: Order) {
        val pay = holder.bind<TextView>(R.id.tv_pay)
        val cancel = holder.bind<TextView>(R.id.tv_cancel)
        val line = holder.bind<View>(R.id.line)
        holder.setText(R.id.tv_time,data.orderTime)
        holder.setText(R.id.tv_start,data.startAddress)
        holder.setText(R.id.tv_goods_typ,if (data.remark.isNullOrEmpty()) "——" else data.remark)
        holder.setText(R.id.tv_trip_time,data.time)
        holder.setText(R.id.tv_state,context.getString(data.getLogisticsState()))
        holder.bind<TextView>(R.id.tv_state).textColorResource = if (data.state == 10) cn.sinata.xldutils.R.color.textColor66 else R.color.colorPrimary
        cancel.onClick {
            callback.onCancel(position)
        }
        cancel.gone()
        pay.gone()
//        Log.e("快件列表状态: ", data.state.toString())
        when(data.state){ //1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付,13=补差价)
           1->{
               cancel.visible()
           }
 
            6->{
                pay.text = context.getString(R.string.开收据)
                line.visible()
                pay.onClick {
                    if (data.receipt.isNullOrEmpty())
                        context.myToast(context.getString(R.string.收据不可用))
                    else
                        context.toBrowser(data.receipt)
                }
            }
            7->{
                pay.visible()
                pay.text = context.getString(R.string.立即支付含金额,data.getShowOrderMoney()).replace(",",".").extClearInvalidZero()
                line.visible()
                pay.onClick {
                    callback.onPay(position)
                }
            }
            13->{
                pay.visible()
                pay.text = context.getString(R.string.支付差价及金额,data.getShowDifferenceMoney()).replace(",",".")
                line.visible()
                pay.onClick {
                    callback.onPay(position)
                }
            }
            in (1..4),11->{
                line.visible()
            }
            else->{
                pay.gone()
                cancel.gone()
                line.gone()
            }
        }
    }
 
    interface ClickCallback{
        fun onPay(index:Int)
        fun onCancel(index:Int)
    }
}