| app/src/main/java/com/xw/yunwei/ui/task/TaskVM.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/res/drawable/selector_nav_task_accident.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/res/drawable/selector_nav_task_all.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/res/drawable/selector_nav_task_normal.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/res/layout/fragment_task.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/res/mipmap-xhdpi/icon_note_tick_circle.png | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/res/mipmap-xhdpi/icon_note_tick_circle2.png | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/res/mipmap-xhdpi/icon_note_triangle.png | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/res/mipmap-xhdpi/icon_note_triangle2.png | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/res/mipmap-xhdpi/icon_tick_double_rect.png | 补丁 | 查看 | 原始文档 | blame | 历史 |
app/src/main/java/com/xw/yunwei/ui/task/TaskVM.kt
@@ -4,16 +4,12 @@ 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 /** * 任务中心 ViewModel @@ -25,17 +21,20 @@ */ class TaskVM(myApplication: Application) : BaseViewModel(myApplication) { companion object{ companion object { /** 全局标识:是否需要刷新消息红点 */ val needRefresh = MutableLiveData(true) } /** 全部任务列表 Fragment */ val allTaskFragment by lazy { TaskListFragment.newInstance(null) } /** 待到达任务列表 Fragment */ val togoTaskFragment by lazy { TaskListFragment.newInstance(0) } /** 待处理任务列表 Fragment */ val todoTaskFragment by lazy { TaskListFragment.newInstance(1) } /** 已处理任务列表 Fragment */ val finishTaskFragment by lazy { TaskListFragment.newInstance(2) } val reassignmentTaskFragment by lazy { TaskListFragment.newInstance(4) } @@ -43,34 +42,49 @@ /** 任务数据仓库 */ val taskRepository: TaskRepository by inject() //选中下标 val selectIndex = MutableLiveData(0) /** 当前定位信息 */ var location: AMapLocation? = null /** 车牌号搜索关键字 */ // 车牌号 val plateNumber: MutableLiveData<String> = MutableLiveData("") /** 筛选开始时间(yyyy-MM-dd) */ var startTime = "" /** 筛选结束时间(yyyy-MM-dd) */ 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] /** 排序规则:1 正序,2 倒序 */ var taskSort = 1 /** 排序视图绑定列表,用于动态更新 UI 状态 */ val sortViews = mutableListOf<ItemArrow2TextBinding>() @@ -81,7 +95,7 @@ * * @return 派发类型编码,null 表示未选择 */ fun getDistributeType(): Int? = when { fun getDistributeType(): Int? = when { startTime.isNotEmpty() || endTime.isNotEmpty() -> 5 selectTaskTime == "今天" -> 1 selectTaskTime == "昨天" -> 2 @@ -95,7 +109,7 @@ * * @return 紧急程度编码,null 表示全部 */ fun getUrgencyLevel(): Int? = when (selectTaskLevel) { fun getUrgencyLevel(): Int? = when (selectTaskLevel) { "一级" -> 0 "二级" -> 1 "三级" -> 2 @@ -107,7 +121,7 @@ * * @return 任务类别编码,null 表示全部 */ fun getTaskCategory(): Int? = when(selectTaskType) { fun getTaskCategory(): Int? = when (selectTaskType) { "事故" -> 2 "常规" -> 1 else -> null @@ -118,7 +132,7 @@ * * @return 排序类型编码,null 表示未选择 */ fun getSortType(): Int? = when (selectTaskSort) { fun getSortType(): Int? = when (selectTaskSort) { "任务优先级" -> 1 "车牌号" -> 2 "任务时间" -> 3 @@ -137,4 +151,12 @@ } } } val onClick = View.OnClickListener { when (it.id) { R.id.ll_all -> selectIndex.postValue(0) R.id.ll_accident -> selectIndex.postValue(1) R.id.ll_normal -> selectIndex.postValue(2) } } } app/src/main/res/drawable/selector_nav_task_accident.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@mipmap/icon_note_triangle" android:state_selected="true"/> <item android:drawable="@mipmap/icon_note_triangle2"/> </selector> app/src/main/res/drawable/selector_nav_task_all.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@mipmap/icon_tick_double_rect" android:state_selected="true"/> <item android:drawable="@mipmap/icon_tick_double_rect"/> </selector> app/src/main/res/drawable/selector_nav_task_normal.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@mipmap/icon_note_tick_circle" android:state_selected="true"/> <item android:drawable="@mipmap/icon_note_tick_circle2"/> </selector> app/src/main/res/layout/fragment_task.xml
@@ -119,6 +119,7 @@ android:layout_marginTop="@dimen/dp_3" android:background="@null" app:layout_constraintTop_toBottomOf="@+id/llSearchAndFilter" app:tabBackground="@null" app:tabGravity="fill" app:tabIndicator="@drawable/layer_indicator_task" app:tabIndicatorColor="@color/blue_5" @@ -126,7 +127,6 @@ app:tabMode="fixed" app:tabPaddingEnd="12dp" app:tabPaddingStart="12dp" app:tabBackground="@null" app:tabRippleColor="@null" app:tabSelectedTextColor="@color/blue_5" app:tabTextColor="@color/gray_7" /> @@ -137,10 +137,97 @@ android:layout_height="0dp" android:layout_marginTop="-8dp" android:paddingTop="@dimen/dp_12" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toTopOf="@id/navView" app:layout_constraintTop_toBottomOf="@+id/tabLayout" app:layout_constraintVertical_bias="0.0" tools:layout_editor_absoluteX="0dp" /> <LinearLayout android:id="@+id/navView" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/white" android:gravity="center" android:orientation="horizontal" app:layout_constraintBottom_toBottomOf="parent"> <LinearLayout android:id="@+id/ll_all" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" android:onClick="@{viewModel.onClick}" android:orientation="vertical" android:paddingVertical="@dimen/dp_8"> <androidx.appcompat.widget.AppCompatImageView selected="@{viewModel.selectIndex==0}" android:layout_width="@dimen/dp_28" android:layout_height="@dimen/dp_28" android:src="@drawable/selector_nav_task_all" /> <androidx.appcompat.widget.AppCompatTextView selected="@{viewModel.selectIndex==0}" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="全部任务" android:textColor="@color/selector_bottom_nav" android:textSize="@dimen/sp_12" /> </LinearLayout> <LinearLayout android:id="@+id/ll_accident" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" android:onClick="@{viewModel.onClick}" android:orientation="vertical" android:paddingVertical="@dimen/dp_8"> <androidx.appcompat.widget.AppCompatImageView selected="@{viewModel.selectIndex==1}" android:layout_width="@dimen/dp_28" android:layout_height="@dimen/dp_28" android:src="@drawable/selector_nav_task_accident" /> <androidx.appcompat.widget.AppCompatTextView selected="@{viewModel.selectIndex==1}" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="事故任务" android:textColor="@color/selector_bottom_nav" android:textSize="@dimen/sp_12" /> </LinearLayout> <LinearLayout android:id="@+id/ll_normal" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" android:orientation="vertical" android:paddingVertical="@dimen/dp_8"> <androidx.appcompat.widget.AppCompatImageView selected="@{viewModel.selectIndex==2}" android:layout_width="@dimen/dp_28" android:layout_height="@dimen/dp_28" android:src="@drawable/selector_nav_task_normal" /> <androidx.appcompat.widget.AppCompatTextView selected="@{viewModel.selectIndex==2}" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="常规任务" android:textColor="@color/selector_bottom_nav" android:textSize="@dimen/sp_12" /> </LinearLayout> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout> </layout> app/src/main/res/mipmap-xhdpi/icon_note_tick_circle.png
app/src/main/res/mipmap-xhdpi/icon_note_tick_circle2.png
app/src/main/res/mipmap-xhdpi/icon_note_triangle.png
app/src/main/res/mipmap-xhdpi/icon_note_triangle2.png
app/src/main/res/mipmap-xhdpi/icon_tick_double_rect.png