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 ?: "") }
|
}
|
}
|
}
|
}
|