18034727885
2026-04-14 370014cbb9ec1ef64e7e42bb4f9a12671461d8e4
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
81
82
83
84
package com.xw.yunwei.ui.work.car.detail.operations.clean
 
import android.annotation.SuppressLint
import android.net.Uri
import androidx.recyclerview.widget.GridLayoutManager
import com.blankj.utilcode.util.UriUtils
import com.luck.picture.lib.basic.PictureSelector
import com.luck.picture.lib.config.PictureMimeType
import com.luck.picture.lib.config.SelectMimeType
import com.luck.picture.lib.entity.LocalMedia
import com.luck.picture.lib.interfaces.OnResultCallbackListener
import com.xw.common.CommonDialog
import com.xw.common.base.BaseActivity
import com.xw.common.base.FileSelectBean
import com.xw.common.base.ImageEventListener
import com.xw.common.base.ImageSelectAdapter
import com.xw.common.base.ShowImgListDialog
import com.xw.common.utils.BindUtils.getUrls
import com.xw.common.utils.GlideEngine
import com.xw.common.utils.PictureCompressEngine
import com.xw.yunwei.BR
import com.xw.yunwei.databinding.ActivityCarCleanDetailBinding
import com.xw.yunwei.model.CarModel
import java.util.ArrayList
import kotlin.text.ifEmpty
 
/**
 * 车身清洁详情
 */
class CleanCarDetailActivity : BaseActivity<ActivityCarCleanDetailBinding, CleanCarDetailVM>() {
    override fun getBindingVariable() = BR.viewModel
    override fun init() {
        super.init()
        viewModel.carId = intent.getLongExtra("carId", 0L)
        viewModel.recordId = intent.getLongExtra("recordId", 0L)
        viewModel.queryInfo()
        viewModel.queryRecord()
        initAdapter()
    }
 
    override fun setObservable() {
        super.setObservable()
        viewModel.carInfo.observe(this) { initBasicInfo(it) }
        viewModel.recordInfo.observe(this) {
            with(viewModel) {
                it.taskImage?.getUrls()?.let {
                    adapter.setList(it.map { FileSelectBean(url = it, type = "img") })
                }
            }
        }
    }
 
    @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)
    }
 
    private fun initAdapter() {
        viewModel.imageEvent = object : ImageEventListener<FileSelectBean>() {
            override fun viewImage(item: FileSelectBean) {
                val imgList: MutableList<String> = ArrayList()
                for (item1 in viewModel.adapter.data) {
                    imgList.add(item1.localPath.ifEmpty { item1.url })
                }
                ShowImgListDialog(
                    this@CleanCarDetailActivity,
                    imgList,
                    imgList.indexOf(item.localPath)
                ).show()
            }
        }
        viewModel.adapter = ImageSelectAdapter(this, 9, 0, viewModel.imageEvent)
 
        binding.rv.adapter =  viewModel.adapter
        binding.rv.layoutManager = GridLayoutManager(this, 5)
    }
 
}