diff --git a/pages/task/manage/index.vue b/pages/task/manage/index.vue index a99a498..ba6333f 100644 --- a/pages/task/manage/index.vue +++ b/pages/task/manage/index.vue @@ -195,7 +195,7 @@ - + { const transformTaskData = (item) => { const expireTime = item.expireTime || item.expire_time || ''; - // 最高优先级:判断任务状态 - status===4 或 status==='4' 直接返回completed,不做任何其他校验 + // 最高优先级:判断任务状态 - 先检查已取消,再检查已完成 // 支持多种字段名和数据类型:status、taskStatus、statusId 等 const taskStatus = item.status !== undefined ? item.status : item.taskStatus !== undefined ? item.taskStatus : item.statusId !== undefined ? item.statusId : null; + // 检查是否已取消(支持数字6、字符串'6'等多种格式)- 优先级最高 + const isCancelled = taskStatus === 6 || + taskStatus === '6' || + String(taskStatus) === '6'; + + // 如果已取消,直接返回取消状态,不做过期校验,不计算剩余天数 + if (isCancelled) { + return { + id: item.id || '', + status: 'cancelled', // 固定为cancelled,确保显示已取消样式 + createName: item.createName || '', + date: formatDate(expireTime) || '', + project: item.projectName || item.project_name || '', + description: item.description || item.task_name || '', + owner: getOwnerNames(item.memberList || item.member_list || []), + releaseTime: formatDate(item.createTime || item.create_time) || '', + remainingDays: null // 已取消任务不计算剩余天数 + }; + } + // 检查是否已完成(支持数字4、字符串'4'、字符串'completed'等多种格式) const isCompleted = taskStatus === 4 || taskStatus === '4' || @@ -583,7 +603,8 @@ const getTaskCardClass = (status) => { 'task-card-imminent': status === 'imminent', 'task-card-pending': status === 'pending', 'task-card-completed': status === 'completed', - 'task-card-overdue': status === 'overdue' + 'task-card-overdue': status === 'overdue', + 'task-card-cancelled': status === 'cancelled' }; }; diff --git a/styles/task-card.scss b/styles/task-card.scss index 70124ba..c19d3c5 100644 --- a/styles/task-card.scss +++ b/styles/task-card.scss @@ -37,6 +37,13 @@ border-left: 4px solid #f56c6c; box-shadow: 0 2px 12px rgba(255, 68, 68, 0.1); } + + // 已取消卡片样式 - 优先级高于逾期 + &.task-card-cancelled { + border-left: 4px solid #909399; + opacity: 0.75; + background: #f5f5f5; + } } .task-header { diff --git a/utils/taskConfig.js b/utils/taskConfig.js index e102b59..498bfbf 100644 --- a/utils/taskConfig.js +++ b/utils/taskConfig.js @@ -53,6 +53,13 @@ export const TASK_STATUS_COLORS = { color: '#fff', borderColor: '#909399', type: 'info' + }, + // 已取消任务 + cancelled: { + backgroundColor: '#909399', + color: '#fff', + borderColor: '#909399', + type: 'info' } }; @@ -62,6 +69,7 @@ export const STATUS_TEXT_MAP = { 'pending': '待完成', 'completed': '已完成', 'overdue': '逾期', + 'cancelled': '已取消', 'urgent': '紧急', 'important': '重要', 'normal': '普通' @@ -73,6 +81,7 @@ export const STATUS_TYPE_MAP = { 'pending': 'primary', 'completed': 'info', 'overdue': 'error', + 'cancelled': 'info', 'urgent': 'error', 'important': 'primary', 'normal': 'info'