|
@@ -313,9 +313,28 @@ const activeTab = ref("pending");
|
|
|
/** 待执行:按选中日期;已完成:全量(不按日期) */
|
|
/** 待执行:按选中日期;已完成:全量(不按日期) */
|
|
|
const pendingCount = computed(() => taskList.value.filter((item) => item.status === "pending").length);
|
|
const pendingCount = computed(() => taskList.value.filter((item) => item.status === "pending").length);
|
|
|
const completedCount = computed(() => mapTaskList.value.filter((item) => item.status === "completed").length);
|
|
const completedCount = computed(() => mapTaskList.value.filter((item) => item.status === "completed").length);
|
|
|
|
|
+
|
|
|
|
|
+/** 解析农事时间用于排序;优先 workTime,其次 MM/DD(当年) */
|
|
|
|
|
+function resolveTaskSortTime(item) {
|
|
|
|
|
+ if (item?.workTime) {
|
|
|
|
|
+ const t = new Date(item.workTime).getTime();
|
|
|
|
|
+ if (!Number.isNaN(t)) return t;
|
|
|
|
|
+ }
|
|
|
|
|
+ const md = item?.executeDate;
|
|
|
|
|
+ if (typeof md === "string" && /^\d{1,2}\/\d{1,2}$/.test(md)) {
|
|
|
|
|
+ const [m, d] = md.split("/").map(Number);
|
|
|
|
|
+ const y = new Date().getFullYear();
|
|
|
|
|
+ return new Date(y, m - 1, d).getTime();
|
|
|
|
|
+ }
|
|
|
|
|
+ return 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
const displayTaskList = computed(() => {
|
|
const displayTaskList = computed(() => {
|
|
|
if (activeTab.value === "completed") {
|
|
if (activeTab.value === "completed") {
|
|
|
- return mapTaskList.value.filter((item) => item.status === "completed");
|
|
|
|
|
|
|
+ return mapTaskList.value
|
|
|
|
|
+ .filter((item) => item.status === "completed")
|
|
|
|
|
+ .slice()
|
|
|
|
|
+ .sort((a, b) => resolveTaskSortTime(b) - resolveTaskSortTime(a));
|
|
|
}
|
|
}
|
|
|
return taskList.value.filter((item) => item.status === "pending");
|
|
return taskList.value.filter((item) => item.status === "pending");
|
|
|
});
|
|
});
|