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
85
86
87
88
89
90
package com.xw.yunwei.ui.task
 
import android.app.Application
import android.view.View
import androidx.lifecycle.MutableLiveData
import com.amap.api.location.AMapLocation
import com.blankj.utilcode.util.TimeUtils
import com.xw.common.base.BaseViewModel
import com.xw.common.utils.ToastUtilCommon
import com.xw.yunwei.R
import com.xw.yunwei.databinding.ItemArrow2TextBinding
import com.xw.yunwei.net.TaskRepository
import com.xw.yunwei.ui.task.list.TaskListFragment
import org.koin.core.component.inject
import java.text.SimpleDateFormat
import kotlin.getValue
 
class TaskVM(myApplication: Application) : BaseViewModel(myApplication) {
 
    companion object{
        val needRefresh = MutableLiveData(true) // 需要刷新消息
    }
 
    val allTaskFragment by lazy { TaskListFragment.newInstance(null) }
    val togoTaskFragment by lazy { TaskListFragment.newInstance(0) }
    val todoTaskFragment by lazy { TaskListFragment.newInstance(1) }
    val finishTaskFragment by lazy { TaskListFragment.newInstance(2) }
 
    val taskRepository: TaskRepository by inject()
 
    var location: AMapLocation? = null
    // 车牌号
    val plateNumber: MutableLiveData<String> = MutableLiveData("")
    var startTime = ""
    var endTime = ""
    /*派发时间*/
    val filterTaskTime = listOf("今天", "昨天", "近一周", "近一月")
    /*优先级*/
    val filterTaskLevel = listOf("全部", "一级", "二级", "三级", "四级")
    /*任务类型*/
    val filterTaskType = listOf("全部", "事故", "常规")
    /*排序优先*/
    val filterTaskSort = listOf("任务优先级", "车牌号", "任务时间")
 
    var selectTaskTime = filterTaskTime[2]
    var selectTaskLevel = filterTaskLevel[0]
    var selectTaskType = filterTaskType[0]
    var selectTaskSort = filterTaskSort[0]
    var taskSort = 1 // 1正序 2倒序
    val sortViews = mutableListOf<ItemArrow2TextBinding>()
 
     fun getDistributeType(): Int? = when {
        startTime.isNotEmpty() || endTime.isNotEmpty() -> 5
        selectTaskTime == "今天" -> 1
        selectTaskTime == "昨天" -> 2
        selectTaskTime == "近一周" -> 3
        selectTaskTime == "近一月" -> 4
        else -> null
    }
 
     fun getUrgencyLevel(): Int? = when (selectTaskLevel) {
        "一级" -> 0
        "二级" -> 1
        "三级" -> 2
        "四级" -> 3
        else -> null
    }
 
     fun getTaskCategory(): Int? = when(selectTaskType) {
        "事故" -> 2
        "常规" -> 1
        else -> null
    }
 
     fun getSortType(): Int? = when (selectTaskSort) {
        "任务优先级" -> 1
        "车牌号" -> 2
        "任务时间" -> 3
        else -> null
    }
 
 
    fun getUnreadCount(block: (String) -> Unit) {
        launchRequest(showLoading = false) {
            taskRepository.getUnreadCount().let {
                runOnMainThread { block(it ?: "") }
            }
        }
    }
}