hookehuyr

fix(打卡详情页): 恢复草稿时增加作业有效性校验

在恢复打卡草稿前,检查草稿中保存的作业ID是否仍在当前可用作业列表中。如果作业已失效(如被删除或截止),则提示用户并清空草稿,避免恢复无效数据。
<!--
* @Date: 2025-09-30 17:05
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2026-01-26 09:42:45
* @LastEditTime: 2026-01-26 11:43:57
* @FilePath: /mlaj/src/views/checkin/CheckinDetailPage.vue
* @Description: 用户打卡详情页
-->
......@@ -349,6 +349,31 @@ const checkAndRestoreDraft = async () => {
const { payload } = draft
// 校验草稿中的作业是否仍然有效
// 如果草稿中包含具体的作业ID,必须确保该作业在当前可用的作业列表(taskOptions)中存在
const draftSubtaskId = payload.subtask_id || (payload.selected_task_value && payload.selected_task_value[0])
if (draftSubtaskId) {
// taskOptions 已经在 onMounted 中加载完毕
const isValidTask = taskOptions.value.some(option => option.value == draftSubtaskId)
if (!isValidTask) {
console.log('[草稿清理] 作业已失效,中断恢复流程', draftSubtaskId)
try {
await showDialog({
title: '草稿已失效',
message: '您之前暂存的作业已失效(可能已截止或被删除),无法恢复。',
confirmButtonText: '清空草稿',
theme: 'round-button',
})
} catch (e) {
// 用户点击确认或其他关闭操作
} finally {
clearDraft(draftKey.value)
}
return
}
}
// 检查是否有实质内容
const hasContent = (payload.message && payload.message.trim()) ||
(payload.file_list && payload.file_list.length > 0)
......