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