package com.xw.yunwei.ui.work.car.detail.dispatch
|
|
import android.annotation.SuppressLint
|
import com.xw.common.base.BaseFragmentNoVM
|
import com.xw.common.custom.SlideButtonView
|
import com.xw.common.custom.SlideButtonView.Companion.DIRECTION_LEFT
|
import com.xw.common.custom.SlideButtonView.Companion.DIRECTION_RIGHT
|
import com.xw.common.utils.BindUtils.getUrl
|
import com.xw.common.utils.BindUtils.getResColor
|
import com.xw.common.utils.ToastUtilCommon
|
import com.xw.common.viewAdapter.ImageDefault
|
import com.xw.common.viewAdapter.ViewAdapter
|
import com.xw.yunwei.R
|
import com.xw.yunwei.databinding.FragmentCarDispatchBinding
|
import com.xw.yunwei.model.CarModel
|
import com.xw.yunwei.ui.work.car.detail.CarDetailActivity
|
|
/**
|
* 车辆调度
|
*/
|
class DispatchFragment : BaseFragmentNoVM<FragmentCarDispatchBinding>() {
|
|
val viewModel by lazy { (requireActivity() as CarDetailActivity).viewModel }
|
|
override fun init() {
|
super.init()
|
binding.viewModel = viewModel
|
binding.lifecycleOwner = this
|
}
|
|
override fun setObservable() {
|
super.setObservable()
|
viewModel.carInfo.observe(this) {
|
initBasicInfo(it)
|
initSlideView(it)
|
}
|
}
|
|
override fun setListener() {
|
super.setListener()
|
with(binding.slideView1) {
|
setOnSlideCompleteListener {
|
val carInfo = viewModel.carInfo.value
|
carInfo?.let { carInfo ->
|
val setStatus = if (carInfo.operatingStatus == 1) 3 else 1
|
val map = mutableMapOf<String, Any?>()
|
map["vehicleId"] = carInfo.id // 车辆ID
|
map["departureStatus"] = setStatus // 发车状态 1=发车 3=收车
|
viewModel.vehicleDispatchDeparture(map, {
|
binding.slideView1.animateReset()
|
}) {
|
carInfo.operatingStatus = setStatus
|
if (getSlideDirection() == DIRECTION_RIGHT) {
|
resetSlideView(this, DIRECTION_LEFT, "左滑收车")
|
} else if (getSlideDirection() == DIRECTION_LEFT) {
|
resetSlideView(this, DIRECTION_RIGHT, "右滑发车")
|
}
|
}
|
}
|
}
|
}
|
with(binding.slideView2) {
|
setOnSlideCompleteListener {
|
val carInfo = viewModel.carInfo.value
|
carInfo?.let { carInfo ->
|
val setStatus = if (carInfo.acceptOrTestStatus == 1) 2 else 1
|
val map = mutableMapOf<String, Any?>()
|
map["vehicleId"] = carInfo.id // 车辆ID
|
map["acceptOrTest"] = carInfo.acceptOrTest // 当前模式 1接单 2测试
|
map["acceptOrTestStatus"] = setStatus // 模式状态 1开始接单/开始测试 2停止接单/停止测试
|
viewModel.vehicleDispatchAccept(map, {
|
binding.slideView2.animateReset()
|
}) {
|
carInfo.acceptOrTestStatus = setStatus
|
if (getSlideDirection() == DIRECTION_RIGHT) {
|
val text = if (carInfo.acceptOrTest == 1) "左滑关闭接单" else "左滑关闭测试"
|
resetSlideView(this, DIRECTION_LEFT, text)
|
} else if (getSlideDirection() == DIRECTION_LEFT) {
|
val text = if (carInfo.acceptOrTest == 1) "右滑开始接单" else "右滑开始测试"
|
resetSlideView(this, DIRECTION_RIGHT, text)
|
}
|
}
|
}
|
}
|
}
|
|
binding.takeOrders.setOnClickListener {
|
viewModel.carInfo.value?.let {
|
if (it.acceptOrTest != 1) {
|
val map = mutableMapOf<String, Any?>()
|
map["vehicleId"] = it.id // 车辆ID
|
map["acceptOrTest"] = 1 // 当前模式 1接单 2测试
|
map["acceptOrTestStatus"] = 1 // 模式状态 1开始接单/开始测试 2停止接单/停止测试
|
viewModel.vehicleDispatchAccept(map, {
|
binding.slideView2.animateReset()
|
}) {
|
it.acceptOrTest = 1
|
it.acceptOrTestStatus = 1
|
initSlideView(it)
|
}
|
}
|
}
|
}
|
binding.test.setOnClickListener {
|
viewModel.carInfo.value?.let {
|
if (it.acceptOrTest != 2) {
|
val map = mutableMapOf<String, Any?>()
|
map["vehicleId"] = it.id // 车辆ID
|
map["acceptOrTest"] = 2 // 当前模式 1接单 2测试
|
map["acceptOrTestStatus"] = 1 // 模式状态 1开始接单/开始测试 2停止接单/停止测试
|
viewModel.vehicleDispatchAccept(map, {
|
binding.slideView2.animateReset()
|
}) {
|
it.acceptOrTest = 2
|
it.acceptOrTestStatus = 1
|
initSlideView(it)
|
}
|
}
|
}
|
}
|
|
binding.unlockDoor.setOnClickListener { viewModel.unlockByType(1) }
|
binding.unlockBox.setOnClickListener { viewModel.unlockByType(2) }
|
}
|
|
private fun resetSlideView(slideView: SlideButtonView, direction: Int, text: String) {
|
if (direction == DIRECTION_RIGHT) { // 右滑模式
|
slideView.setThumbDrawable(com.xw.common.R.mipmap.ic_slide_r)
|
slideView.setSlideTextColor(getResColor(com.xw.common.R.color.blue_5))
|
slideView.setSlideBackgroundColor(getResColor(com.xw.common.R.color.blue_1))
|
slideView.setSlideText(text)
|
slideView.setSlideDirection(direction)
|
} else if (direction == DIRECTION_LEFT) { // 左滑模式
|
slideView.setThumbDrawable(com.xw.common.R.mipmap.ic_slide_l)
|
slideView.setSlideTextColor(getResColor(com.xw.common.R.color.white))
|
slideView.setSlideBackgroundColor(getResColor(com.xw.common.R.color.orange_5))
|
slideView.setSlideText(text)
|
slideView.setSlideDirection(direction)
|
}
|
}
|
|
@SuppressLint("SetTextI18n")
|
private fun initBasicInfo(it: CarModel) {
|
binding.batteryLife.text = "${it.mileageRange?.toInt()}km"
|
binding.batteryLife.setTextColor(
|
com.xw.common.custom.BatteryView.getBatteryColor(
|
it.currentElectricity ?: 0
|
)
|
)
|
binding.batteryView.setLevel(it.currentElectricity ?: 0)
|
var url = ""
|
try {
|
url = it.vehiclePictures?.getUrl() ?: ""
|
} catch (e: Exception) {
|
}
|
ViewAdapter.loadImage(binding.icon, ImageDefault(url, R.mipmap.img_work_car1))
|
}
|
|
private fun initSlideView(it: CarModel) {
|
if (it.acceptOrTest == 1) {
|
binding.takeOrders.setBackgroundResource(R.drawable.shape_white_bg_4)
|
binding.test.setBackgroundResource(com.xw.common.R.color.color_transparent)
|
if (it.acceptOrTestStatus == 1) {
|
resetSlideView(binding.slideView2, DIRECTION_RIGHT, "右滑开始接单")
|
} else {
|
resetSlideView(binding.slideView2, DIRECTION_LEFT, "左滑关闭接单")
|
}
|
|
} else if (it.acceptOrTest == 2) {
|
binding.test.setBackgroundResource(R.drawable.shape_white_bg_4)
|
binding.takeOrders.setBackgroundResource(com.xw.common.R.color.color_transparent)
|
if (it.acceptOrTestStatus == 1) {
|
resetSlideView(binding.slideView2, DIRECTION_RIGHT, "右滑开始测试")
|
} else {
|
resetSlideView(binding.slideView2, DIRECTION_LEFT, "左滑关闭测试")
|
}
|
}
|
|
if (it.operatingStatus == 1) {
|
resetSlideView(binding.slideView1, DIRECTION_LEFT, "左滑收车")
|
} else {
|
resetSlideView(binding.slideView1, DIRECTION_RIGHT, "右滑发车")
|
}
|
}
|
}
|