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
package com.xw.yunwei.ui.work.car.detail
 
import android.util.Log
import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter
import com.blankj.utilcode.util.GsonUtils
import com.google.android.material.tabs.TabLayoutMediator
import com.xw.common.base.BaseActivity
import com.xw.common.base.fastObserve
import com.xw.yunwei.BR
import com.xw.yunwei.MyApp
import com.xw.yunwei.MyApp.Companion.findPermissionByName
import com.xw.yunwei.databinding.ActivityCarDetailBinding
import com.xw.yunwei.ui.work.car.detail.dispatch.DispatchFragment
import com.xw.yunwei.ui.work.car.detail.management.ManagementFragment
import com.xw.yunwei.ui.work.car.detail.operations.OperationsFragment
 
/**
 * 车辆详情
 */
class CarDetailActivity : BaseActivity<ActivityCarDetailBinding, CarDetailVM>() {
    override fun getBindingVariable() = BR.viewModel
 
    private val tabTitles = listOf("车辆调度", "车辆运维", "车辆管理")
 
    override fun init() {
        super.init()
        viewModel.carId = intent.getLongExtra("carId", 0L)
        viewModel.queryInfo()
        binding.pager.adapter = PageAdapter()
        TabLayoutMediator(binding.tabs, binding.pager) { tab, positon ->
            tab.text = tabTitles[positon]
        }.attach()
    }
 
    override fun setListener() {
        super.setListener()
        with(binding.refreshLayout) {
            setOnRefreshListener {
                viewModel.refreshData()
            }
        }
    }
 
    override fun setObservable() {
        super.setObservable()
        viewModel.refreshLiveData.fastObserve(this, binding.refreshLayout)
 
        MyApp.permissions.observe(this){
            viewModel.unlockDoorPermissions.value = findPermissionByName("车门解锁")?.visible == "0"
            viewModel.unlockBoxPermissions.value = findPermissionByName("后备箱解锁")?.visible == "0"
            viewModel.departurePermissions.value = findPermissionByName("发车/收车")?.visible == "0"
            viewModel.takeOrdersPermissions.value = findPermissionByName("接单/测试")?.visible == "0"
 
            viewModel.zhengbeiPermissions.value = findPermissionByName("车辆整备")?.visible == "0"
            viewModel.chongdianPermissions.value = findPermissionByName("车辆充电")?.visible == "0"
            viewModel.jiancePermissions.value = findPermissionByName("车辆检测")?.visible == "0"
            viewModel.weixiuPermissions.value = findPermissionByName("车辆维修")?.visible == "0"
            viewModel.qingjiePermissions.value = findPermissionByName("车辆清洁")?.visible == "0"
            viewModel.recordPermissions.value = findPermissionByName("运维记录")?.visible == "0"
            viewModel.policyPermissions.value = findPermissionByName("查看保单")?.visible == "0"
        }
    }
 
    override fun onResume() {
        super.onResume()
        viewModel.getAppPermission()
    }
 
    private inner class PageAdapter : FragmentStateAdapter(this) {
        override fun getItemCount(): Int = tabTitles.size
        override fun createFragment(position: Int): Fragment {
            return when (tabTitles[position]) {
                "车辆调度" -> DispatchFragment()
                "车辆运维" -> OperationsFragment()
                "车辆管理" -> ManagementFragment()
                else -> error("Wrong position $position")
            }
        }
    }
}