修复任务列表数据发送二次请求的问题
This commit is contained in:
parent
9c7b0a2373
commit
ca4f03b1d5
|
|
@ -269,23 +269,19 @@ const determineTaskStatus = (status, expireTime) => {
|
|||
const now = new Date();
|
||||
|
||||
// 设置时间到当天0点,便于日期比较
|
||||
now.setHours(0, 0, 0, 0);
|
||||
expireDate.setHours(23, 59, 59, 999);
|
||||
|
||||
// now.setHours(0, 0, 0, 0);
|
||||
// expireDate.setHours(23, 59, 59, 999);
|
||||
// 如果已过期,标记为逾期
|
||||
if (expireDate.getTime() < now.getTime()) {
|
||||
return 'overdue';
|
||||
}
|
||||
|
||||
// 计算距离过期的天数
|
||||
const diffTime = expireDate.getTime() - now.getTime();
|
||||
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
||||
|
||||
// 如果3天内到期,标记为即将逾期
|
||||
if (diffDays <= 3 && diffDays > 0) {
|
||||
return 'imminent';
|
||||
}
|
||||
|
||||
// 否则返回待完成状态
|
||||
return 'pending';
|
||||
};
|
||||
|
|
@ -722,24 +718,26 @@ onLoad((options) => {
|
|||
task.value.id = taskId;
|
||||
// 优先从 API 加载数据
|
||||
loadTaskData(taskId);
|
||||
} else {
|
||||
// 如果没有 taskId,尝试从 Pinia store 获取任务详情数据(兼容旧逻辑)
|
||||
const taskStore = useTaskStore();
|
||||
const storedTask = taskStore.getTaskDetail;
|
||||
if (storedTask) {
|
||||
task.value = {
|
||||
...task.value,
|
||||
...storedTask
|
||||
};
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: '缺少任务ID',
|
||||
icon: 'none'
|
||||
});
|
||||
setTimeout(() => {
|
||||
uni.navigateBack();
|
||||
}, 1500);
|
||||
}
|
||||
}
|
||||
else {
|
||||
// // 如果没有 taskId,尝试从 Pinia store 获取任务详情数据(兼容旧逻辑)
|
||||
// const taskStore = useTaskStore();
|
||||
// const storedTask = taskStore.getTaskDetail;
|
||||
// if (storedTask) {
|
||||
// task.value = {
|
||||
// ...task.value,
|
||||
// ...storedTask
|
||||
// };
|
||||
// }
|
||||
// else {
|
||||
// uni.showToast({
|
||||
// title: '缺少任务ID',
|
||||
// icon: 'none'
|
||||
// });
|
||||
// setTimeout(() => {
|
||||
// uni.navigateBack();
|
||||
// }, 1500);
|
||||
// }
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, computed, watch, onMounted, onUnmounted } from 'vue';
|
||||
import { ref, computed, watch, onMounted, onUnmounted, nextTick } from 'vue';
|
||||
import { onLoad } from '@dcloudio/uni-app';
|
||||
import { getStatusText, getTaskStatusType, getTaskStatusStyle } from '@/utils/taskConfig.js';
|
||||
import {getTaskList} from '@/api';
|
||||
|
|
@ -285,9 +285,9 @@ const determineTaskStatus = (item, expireTime) => {
|
|||
const now = new Date();
|
||||
|
||||
// 设置时间到当天0点,便于日期比较
|
||||
now.setHours(0, 0, 0, 0);
|
||||
expireDate.setHours(23, 59, 59, 999);
|
||||
|
||||
// now.setHours(0, 0, 0, 0);
|
||||
// expireDate.setHours(23, 59, 59, 999);
|
||||
|
||||
// 如果已过期,标记为逾期
|
||||
if (expireDate.getTime() < now.getTime()) {
|
||||
return 'overdue';
|
||||
|
|
@ -298,7 +298,7 @@ const determineTaskStatus = (item, expireTime) => {
|
|||
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
||||
|
||||
// 如果3天内到期,标记为即将逾期
|
||||
if (diffDays <= 3 && diffDays > 0) {
|
||||
if (diffDays <= 3 && diffDays >= 0) {
|
||||
return 'imminent';
|
||||
}
|
||||
|
||||
|
|
@ -431,7 +431,7 @@ watch(() => userStore.privateView, () => {
|
|||
|
||||
// 页面加载时获取参数
|
||||
onLoad((options) => {
|
||||
// 获取状态参数
|
||||
// 获取状态参数(此时 isInitialized 为 false,watch 不会触发)
|
||||
if (options.status) {
|
||||
statusFilter.value = options.status;
|
||||
} else if (options.label) {
|
||||
|
|
@ -446,9 +446,12 @@ onLoad((options) => {
|
|||
});
|
||||
}
|
||||
|
||||
// 标记为已初始化,然后加载任务列表数据
|
||||
isInitialized.value = true;
|
||||
loadTaskList();
|
||||
// 在下一个 tick 中标记为已初始化并加载数据
|
||||
// 这样可以确保 watch 的回调(如果触发)在 isInitialized 还是 false 时不执行
|
||||
nextTick(() => {
|
||||
isInitialized.value = true;
|
||||
loadTaskList();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -796,7 +796,6 @@ const handleSubmit = async () => {
|
|||
}
|
||||
|
||||
.form-label {
|
||||
flex: 1;
|
||||
font-size: 15px;
|
||||
color: #333;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user