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