车辆默认选中

This commit is contained in:
lijia 2024-04-17 16:43:45 +08:00
parent b7706e4549
commit 9910d51e1b
10 changed files with 95 additions and 34 deletions

View File

@ -13,6 +13,9 @@ data class OrderBean(
val goodsList: List<Goods> = mutableListOf<Goods>(), val goodsList: List<Goods> = mutableListOf<Goods>(),
val loadingArea: String= "", val loadingArea: String= "",
val loadingAreaCode: String= "", val loadingAreaCode: String= "",
val shipperCaptainId: String= "",//货主指定车队ID
val shipperDriverId: String= "",//货主指定司机ID
val shipperCarId: String= "",//货主指定车辆ID
val loadingCity: String= "", val loadingCity: String= "",
val loadingCityCode: String= "", val loadingCityCode: String= "",
val loadingDeadline: String= "", val loadingDeadline: String= "",

View File

@ -27,6 +27,9 @@ data class OrderDetailBean(
val requirement: String, val requirement: String,
val shipperContactName: String, val shipperContactName: String,
val shipperContactPhone: String, val shipperContactPhone: String,
val shipperCaptainId: String,//货主指定车队ID
val shipperDriverId: String,//货主指定司机ID
val shipperCarId: String,//货主指定车辆ID
val vehicleLength: String, val vehicleLength: String,
val vehicleType: String, val vehicleType: String,
val waybillId: String, val waybillId: String,

View File

@ -24,6 +24,8 @@ class PopBottomCar(
context: Context, context: Context,
cars: MutableList<CarBean>, cars: MutableList<CarBean>,
private var isCap: Boolean, private var isCap: Boolean,
private var selDriverId: String = "",
private var selCarId: String = "",
onCarSelectListener: OnCarSelectListener onCarSelectListener: OnCarSelectListener
) : BottomPopupView(context) { ) : BottomPopupView(context) {
@ -43,6 +45,12 @@ class PopBottomCar(
super.onCreate() super.onCreate()
var recycler = findViewById<RecyclerView>(R.id.recycler) var recycler = findViewById<RecyclerView>(R.id.recycler)
var btnOk = findViewById<Button>(R.id.btnOk) var btnOk = findViewById<Button>(R.id.btnOk)
cars.find { if (isCap) (it.carId == selCarId && it.driverId == selDriverId) else it.carId == selCarId }
?.run {
isSelect = true
currCar = this
}
initRecycle(recycler) initRecycle(recycler)
btnOk.text = if (isCap) "分配车辆" else "接单" btnOk.text = if (isCap) "分配车辆" else "接单"
btnOk.setOnClickListener { btnOk.setOnClickListener {

View File

@ -123,10 +123,13 @@ class LoginActivity : BaseActivity<ActivityLoginBinding>(), View.OnClickListener
} }
private fun login() { private fun login() {
if (!binding.cb.isChecked) {
ToastUtils.showToast(mContext, "请勾选用户隐私协议")
return
}
if ("获取验证码" == binding.ok.text) { if ("获取验证码" == binding.ok.text) {
var phone = binding.etPhone.text.toString().trim() var phone = binding.etPhone.text.toString().trim()
if (phone.length == 11) { if (phone.length == 11) {
ActivityUtils.startActivityForResult( ActivityUtils.startActivityForResult(
LoginActivity@ this, LoginActivity@ this,
CodeLoginActivity::class.java, CodeLoginActivity::class.java,

View File

@ -78,7 +78,10 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>(), RefreshCallBack {
.permissions(Manifest.permission.ACCESS_FINE_LOCATION) .permissions(Manifest.permission.ACCESS_FINE_LOCATION)
.request { allGranted: Boolean, grantedList: List<String?>?, deniedList: List<String?>? -> .request { allGranted: Boolean, grantedList: List<String?>?, deniedList: List<String?>? ->
if (allGranted) { if (allGranted) {
ActivityUtils.startActivity(mContext,BusinessActivity::class.java) ActivityUtils.startActivity(
mContext,
BusinessActivity::class.java
)
} else { } else {
showToast("请先开启定位权限") showToast("请先开启定位权限")
} }
@ -142,28 +145,32 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>(), RefreshCallBack {
private fun initData() { private fun initData() {
DataManager.getInstance().orderList() DataManager.getInstance().orderList()
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<MutableList<OrderBean>>(binding.refresh) { .subscribe(
override fun onSuccess(t: CommonResponseBean<MutableList<OrderBean>>) { BaseObserver(
super.onSuccess(t) mContext,
if (mRefreshPage === 1) { object : RxHttpCallBack<MutableList<OrderBean>>(binding.refresh) {
if (t.data.size == 0) { override fun onSuccess(t: CommonResponseBean<MutableList<OrderBean>>) {
adapter?.submitList(null) super.onSuccess(t)
adapter?.setStateViewLayout(mContext, R.layout.empty_view) if (mRefreshPage === 1) {
} else { if (t.data.size == 0) {
adapter?.submitList(t.data) adapter?.submitList(null)
adapter?.setStateViewLayout(mContext, R.layout.empty_view)
} else {
adapter?.submitList(t.data)
}
} else {
adapter?.addAll(t.data)
}
setFinishRefresh(
binding.refresh,
t.total > mRefreshPage * mRefreshCount
)
} }
} else { })
adapter?.addAll(t.data) )
}
setFinishRefresh(
binding.refresh,
t.total > mRefreshPage * mRefreshCount
)
}
}))
//执行中运单轨迹上传 //执行中运单轨迹上传
OrderUtils.getInstance().upLocation(mContext) OrderUtils.getInstance().upLocation(mContext)
} }
private fun initRecy() { private fun initRecy() {
@ -189,7 +196,12 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>(), RefreshCallBack {
Bundle().apply { putString(AppConfig.ORDER_ID, items[position].orderId) }) Bundle().apply { putString(AppConfig.ORDER_ID, items[position].orderId) })
} }
addOnItemChildClickListener(R.id.btnOk) { adapter, view, position -> addOnItemChildClickListener(R.id.btnOk) { adapter, view, position ->
OrderUtils.getInstance().goReceWaybill(mContext, items[position].orderId) { OrderUtils.getInstance().goReceWaybill(
mContext,
items[position].orderId,
items[position].shipperDriverId,
items[position].shipperCarId
) {
if (it) { if (it) {
initData() initData()
} }

View File

@ -22,6 +22,7 @@ import com.dahe.gldriver.utils.SPUtils
import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.base.BaseActivity
import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.net.CommonResponseBean
import com.dahe.mylibrary.utils.ImageLoader import com.dahe.mylibrary.utils.ImageLoader
import com.dahe.mylibrary.utils.ToastUtils
import com.lxj.xpopup.interfaces.OnInputConfirmListener import com.lxj.xpopup.interfaces.OnInputConfirmListener
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
@ -170,6 +171,7 @@ class DriverTeamDetailActivity : BaseActivity<ActivityDriverTeamDetailBinding>()
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<Any>() { .subscribe(BaseObserver(mContext, object : RxHttpCallBack<Any>() {
override fun onSuccess(t: CommonResponseBean<Any>) { override fun onSuccess(t: CommonResponseBean<Any>) {
super.onSuccess(t) super.onSuccess(t)
ToastUtils.showToast(mContext, "退出车队成功")
setResult(RESULT_OK, Intent().apply { putExtra(AppConfig.REFRSH, true) }) setResult(RESULT_OK, Intent().apply { putExtra(AppConfig.REFRSH, true) })
finish() finish()
} }
@ -184,6 +186,8 @@ class DriverTeamDetailActivity : BaseActivity<ActivityDriverTeamDetailBinding>()
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<Any>() { .subscribe(BaseObserver(mContext, object : RxHttpCallBack<Any>() {
override fun onSuccess(t: CommonResponseBean<Any>) { override fun onSuccess(t: CommonResponseBean<Any>) {
super.onSuccess(t) super.onSuccess(t)
if (status == "1")
ToastUtils.showToast(mContext, "加入车队成功")
setResult(RESULT_OK, Intent().apply { putExtra(AppConfig.REFRSH, true) }) setResult(RESULT_OK, Intent().apply { putExtra(AppConfig.REFRSH, true) })
finish() finish()
} }

View File

@ -30,6 +30,7 @@ import com.dahe.mylibrary.utils.BaseUtils
import com.dahe.mylibrary.utils.ConvertUtils import com.dahe.mylibrary.utils.ConvertUtils
import com.dahe.mylibrary.utils.LoadingUtils import com.dahe.mylibrary.utils.LoadingUtils
import com.dahe.mylibrary.utils.SelectPicUtils import com.dahe.mylibrary.utils.SelectPicUtils
import com.dahe.mylibrary.utils.ToastUtils
import com.permissionx.guolindev.PermissionX import com.permissionx.guolindev.PermissionX
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.schedulers.Schedulers
@ -45,6 +46,7 @@ class WaybillDetailActivity : BaseActivity<ActivityWaybillDetailBinding>() {
lateinit var gdLatLng: LatLng lateinit var gdLatLng: LatLng
lateinit var loadPos: LatLng lateinit var loadPos: LatLng
var isCap: Boolean = false var isCap: Boolean = false
lateinit var orderDetailInfo: OrderDetailBean
override fun initView(savedInstanceState: Bundle?) { override fun initView(savedInstanceState: Bundle?) {
isCap = SPUtils.instance.getUserInfo(mContext).isCarCaptain == "1" isCap = SPUtils.instance.getUserInfo(mContext).isCarCaptain == "1"
orderId = intent.extras?.getString(AppConfig.ORDER_ID, "").toString() orderId = intent.extras?.getString(AppConfig.ORDER_ID, "").toString()
@ -56,7 +58,15 @@ class WaybillDetailActivity : BaseActivity<ActivityWaybillDetailBinding>() {
BaseUtils.callPhone(this@WaybillDetailActivity, "15838201105") BaseUtils.callPhone(this@WaybillDetailActivity, "15838201105")
} }
binding.btnReceiving.setOnClickListener { binding.btnReceiving.setOnClickListener {
OrderUtils.getInstance().goReceWaybill(mContext, orderId) { if (!::orderDetailInfo.isInitialized){
ToastUtils.showToast(mContext,"请稍等,暂未获取订单信息")
}
OrderUtils.getInstance().goReceWaybill(
mContext,
orderId,
orderDetailInfo.shipperDriverId,
orderDetailInfo.shipperCarId
) {
ActivityUtils.startActivity( ActivityUtils.startActivity(
mContext, mContext,
WaybillSuccActivity::class.java, WaybillSuccActivity::class.java,
@ -73,6 +83,7 @@ class WaybillDetailActivity : BaseActivity<ActivityWaybillDetailBinding>() {
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<OrderDetailBean>() { .subscribe(BaseObserver(mContext, object : RxHttpCallBack<OrderDetailBean>() {
override fun onSuccess(t: CommonResponseBean<OrderDetailBean>) { override fun onSuccess(t: CommonResponseBean<OrderDetailBean>) {
super.onSuccess(t) super.onSuccess(t)
orderDetailInfo = t.data
val load = t.data.orderChildList.first { it.type == "1" } val load = t.data.orderChildList.first { it.type == "1" }
var distance: String = "" var distance: String = ""
loadPos = LatLng(load.latitude.toDouble(), load.longitude.toDouble()) loadPos = LatLng(load.latitude.toDouble(), load.longitude.toDouble())

View File

@ -35,11 +35,18 @@ class CommonPopUtils private constructor() {
/** /**
* 选择车辆 * 选择车辆
* */ * */
fun showCarList(context: Context, cars: MutableList<CarBean>,isCap:Boolean = false, listener: OnCarSelectListener) { fun showCarList(
context: Context,
cars: MutableList<CarBean>,
isCap: Boolean = false,
selDriverId: String = "",
selCarId: String = "",
listener: OnCarSelectListener
) {
XPopup.Builder(context) XPopup.Builder(context)
.isViewMode(true) .isViewMode(true)
// .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个 // .isDestroyOnDismiss(true) //对于只使用一次的弹窗,推荐设置这个
.asCustom(PopBottomCar(context, cars,isCap, listener)) .asCustom(PopBottomCar(context, cars, isCap,selDriverId,selCarId, listener))
.show() .show()
@ -171,13 +178,13 @@ class CommonPopUtils private constructor() {
* @param userInfo UserDetail * @param userInfo UserDetail
* @param listener OnInputConfirmListener * @param listener OnInputConfirmListener
*/ */
fun showPickMoney(context: Context, userInfo : UserDetail, listener: OnInputConfirmListener){ fun showPickMoney(context: Context, userInfo: UserDetail, listener: OnInputConfirmListener) {
XPopup.Builder(context) XPopup.Builder(context)
.dismissOnBackPressed(true) .dismissOnBackPressed(true)
.dismissOnTouchOutside(true) .dismissOnTouchOutside(true)
.asCustom( .asCustom(
InputMoneyPop( InputMoneyPop(
context,userInfo,listener context, userInfo, listener
) )
) )
.show() .show()

View File

@ -97,7 +97,13 @@ class OrderUtils private constructor() {
* *
* 接单包含选择车辆->装货 * 接单包含选择车辆->装货
* */ * */
fun goReceWaybill(context: Context, orderId: String, listener: OnResultListener) { fun goReceWaybill(
context: Context,
orderId: String,
selDriverId: String = "",
selCarId: String = "",
listener: OnResultListener
) {
val userInfo = SPUtils.instance.getUserInfo(context) val userInfo = SPUtils.instance.getUserInfo(context)
if (userInfo.isCarCaptain == "1") { if (userInfo.isCarCaptain == "1") {
DataManager.getInstance() DataManager.getInstance()
@ -111,10 +117,10 @@ class OrderUtils private constructor() {
return return
} }
CommonPopUtils.getInstance() CommonPopUtils.getInstance()
.showCarList(context, t.data, true) { .showCarList(context, t.data, true,selDriverId,selCarId) {
//分配车辆redeliveryOrder //分配车辆redeliveryOrder
DataManager.getInstance() DataManager.getInstance()
.redeliveryOrder(UpDriverCar(orderId,it.driverId,it.carId)) .redeliveryOrder(UpDriverCar(orderId, it.driverId, it.carId))
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe( .subscribe(
@ -146,7 +152,7 @@ class OrderUtils private constructor() {
} }
if (t.data.size > 1) {//多辆车需选择车辆,单个车辆直接接单 if (t.data.size > 1) {//多辆车需选择车辆,单个车辆直接接单
CommonPopUtils.getInstance() CommonPopUtils.getInstance()
.showCarList(context, t.data, false) { .showCarList(context, t.data, false,selDriverId,selCarId) {
//接单接口 //接单接口
receivingOrders(context, orderId, it, listener) receivingOrders(context, orderId, it, listener)
} }
@ -203,6 +209,8 @@ class OrderUtils private constructor() {
* @param context Context * @param context Context
*/ */
fun upLocation(context: Context) { fun upLocation(context: Context) {
if (SPUtils.instance.getUserInfo(context).isCarCaptain == "1")//车队长角色不需要上传轨迹
return
DataManager.getInstance().orderDetail("") DataManager.getInstance().orderDetail("")
.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(context, object : RxHttpCallBack<OrderDetailBean>() { .subscribe(BaseObserver(context, object : RxHttpCallBack<OrderDetailBean>() {

View File

@ -143,11 +143,13 @@
android:id="@+id/tvCom" android:id="@+id/tvCom"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:maxWidth="@dimen/dp_200"
android:maxLines="1"
android:ellipsize="end"
android:layout_alignTop="@+id/imgHead" android:layout_alignTop="@+id/imgHead"
android:layout_marginLeft="@dimen/dp_8" android:layout_marginLeft="@dimen/dp_8"
android:layout_toRightOf="@+id/imgHead" android:layout_toRightOf="@+id/imgHead"
android:text="双汇食品有限公司" android:text="双汇食品有限公司双汇食品有限公司双汇食品有限公司"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_14"></TextView> android:textSize="@dimen/sp_14"></TextView>