137 lines
2.9 KiB
JavaScript
137 lines
2.9 KiB
JavaScript
/**
|
||
* 任务状态全局配置
|
||
* 包含任务状态的配色方案、类型映射等
|
||
*/
|
||
|
||
// 任务状态配色方案
|
||
export const TASK_STATUS_COLORS = {
|
||
// 待完成任务
|
||
pending: {
|
||
backgroundColor: '#2885ff',
|
||
color: '#fff',
|
||
borderColor: '#2885ff',
|
||
type: 'primary'
|
||
},
|
||
// 即将逾期任务
|
||
imminent: {
|
||
backgroundColor: '#ff9800',
|
||
color: '#fff',
|
||
borderColor: '#ff9800',
|
||
type: 'warning'
|
||
},
|
||
// 已完成任务
|
||
completed: {
|
||
backgroundColor: '#909399',
|
||
color: '#fff',
|
||
borderColor: '#909399',
|
||
type: 'info'
|
||
},
|
||
// 逾期任务
|
||
overdue: {
|
||
backgroundColor: '#f56c6c',
|
||
color: '#fff',
|
||
borderColor: '#f56c6c',
|
||
type: 'error'
|
||
},
|
||
// 紧急标签
|
||
urgent: {
|
||
backgroundColor: '#f56c6c',
|
||
color: '#fff',
|
||
borderColor: '#f56c6c',
|
||
type: 'error'
|
||
},
|
||
// 重要标签
|
||
important: {
|
||
backgroundColor: '#2885ff',
|
||
color: '#fff',
|
||
borderColor: '#2885ff',
|
||
type: 'primary'
|
||
},
|
||
// 普通标签
|
||
normal: {
|
||
backgroundColor: '#909399',
|
||
color: '#fff',
|
||
borderColor: '#909399',
|
||
type: 'info'
|
||
},
|
||
// 已取消任务
|
||
cancelled: {
|
||
backgroundColor: '#909399',
|
||
color: '#fff',
|
||
borderColor: '#909399',
|
||
type: 'info'
|
||
}
|
||
};
|
||
|
||
// 状态文本映射
|
||
export const STATUS_TEXT_MAP = {
|
||
'imminent': '即将逾期',
|
||
'pending': '待完成',
|
||
'completed': '已完成',
|
||
'overdue': '逾期',
|
||
'cancelled': '已取消',
|
||
'urgent': '紧急',
|
||
'important': '重要',
|
||
'normal': '普通'
|
||
};
|
||
|
||
// 状态类型映射(用于uv-tags组件的type属性)
|
||
export const STATUS_TYPE_MAP = {
|
||
'imminent': 'warning',
|
||
'pending': 'primary',
|
||
'completed': 'info',
|
||
'overdue': 'error',
|
||
'cancelled': 'info',
|
||
'urgent': 'error',
|
||
'important': 'primary',
|
||
'normal': 'info'
|
||
};
|
||
|
||
// 标签文本到状态的映射(用于任务详细页面)
|
||
export const TAG_TEXT_TO_STATUS = {
|
||
'已逾期': 'overdue',
|
||
'紧急': 'urgent',
|
||
'重要': 'important',
|
||
'普通': 'normal',
|
||
'即将逾期': 'imminent',
|
||
'待完成': 'pending',
|
||
'已完成': 'completed'
|
||
};
|
||
|
||
/**
|
||
* 获取任务状态的自定义样式
|
||
* @param {string} status - 任务状态
|
||
* @returns {object} 样式对象
|
||
*/
|
||
export const getTaskStatusStyle = (status) => {
|
||
return TASK_STATUS_COLORS[status] || TASK_STATUS_COLORS.normal;
|
||
};
|
||
|
||
/**
|
||
* 获取任务状态的类型(用于uv-tags组件)
|
||
* @param {string} status - 任务状态
|
||
* @returns {string} uv-tags组件的type值
|
||
*/
|
||
export const getTaskStatusType = (status) => {
|
||
return STATUS_TYPE_MAP[status] || 'primary';
|
||
};
|
||
|
||
/**
|
||
* 获取状态文本
|
||
* @param {string} status - 任务状态
|
||
* @returns {string} 状态文本
|
||
*/
|
||
export const getStatusText = (status) => {
|
||
return STATUS_TEXT_MAP[status] || status;
|
||
};
|
||
|
||
/**
|
||
* 根据标签文本获取状态
|
||
* @param {string} tagText - 标签文本
|
||
* @returns {string} 任务状态
|
||
*/
|
||
export const getStatusFromTagText = (tagText) => {
|
||
return TAG_TEXT_TO_STATUS[tagText] || 'normal';
|
||
};
|
||
|