/**
|
* 任务工具类
|
* 提供任务相关的通用工具方法
|
*/
|
|
/**
|
* 任务状态枚举
|
*/
|
export const TaskStatus = {
|
/** 待处理 */
|
PENDING: 'PENDING',
|
|
/** 部分确认 */
|
PARTIALLY_CONFIRMED: 'PARTIALLY_CONFIRMED',
|
|
/** 完全未确认 */
|
NOT_CONFIRMED: 'NOT_CONFIRMED',
|
|
/** 未出车 */
|
NOT_DEPARTED: 'NOT_DEPARTED',
|
|
/** 出发中 */
|
DEPARTING: 'DEPARTING',
|
|
/** 已到达 */
|
ARRIVED: 'ARRIVED',
|
|
/** 返程中 */
|
RETURNING: 'RETURNING',
|
|
/** 已完成 */
|
COMPLETED: 'COMPLETED',
|
|
/** 已取消 */
|
CANCELLED: 'CANCELLED',
|
|
/** 任务中 (兼容旧数据) */
|
IN_PROGRESS: 'IN_PROGRESS'
|
};
|
|
/**
|
* 任务状态文本映射
|
*/
|
const STATUS_TEXT_MAP = {
|
[TaskStatus.PENDING]: '待处理',
|
[TaskStatus.PARTIALLY_CONFIRMED]: '部分确认',
|
[TaskStatus.NOT_CONFIRMED]: '完全未确认',
|
[TaskStatus.NOT_DEPARTED]: '未出车',
|
[TaskStatus.DEPARTING]: '出发中',
|
[TaskStatus.ARRIVED]: '已到达',
|
[TaskStatus.RETURNING]: '返程中',
|
[TaskStatus.COMPLETED]: '已完成',
|
[TaskStatus.CANCELLED]: '已取消',
|
[TaskStatus.IN_PROGRESS]: '任务中' // 兼容旧数据
|
};
|
|
/**
|
* 获取任务状态文本
|
* @param {string} status - 任务状态代码
|
* @returns {string} 任务状态文本
|
*/
|
export function getStatusText(status) {
|
return STATUS_TEXT_MAP[status] || '未知';
|
}
|
|
/**
|
* 获取所有任务状态选项(适用于选择器)
|
* @returns {Array} 状态选项数组
|
*/
|
export function getTaskStatusOptions() {
|
return Object.keys(TaskStatus).map(key => ({
|
value: TaskStatus[key],
|
label: STATUS_TEXT_MAP[TaskStatus[key]]
|
}));
|
}
|
|
/**
|
* 判断任务是否已完成
|
* @param {string} status - 任务状态代码
|
* @returns {boolean} 是否已完成
|
*/
|
export function isTaskCompleted(status) {
|
return status === TaskStatus.COMPLETED;
|
}
|
|
/**
|
* 判断任务是否已取消
|
* @param {string} status - 任务状态代码
|
* @returns {boolean} 是否已取消
|
*/
|
export function isTaskCancelled(status) {
|
return status === TaskStatus.CANCELLED;
|
}
|
|
/**
|
* 判断任务是否处于进行中状态(包括待处理、出发中、已到达、返程中等)
|
* @param {string} status - 任务状态代码
|
* @returns {boolean} 是否进行中
|
*/
|
export function isTaskInProgress(status) {
|
const activeStatuses = [
|
TaskStatus.PENDING,
|
TaskStatus.PARTIALLY_CONFIRMED,
|
TaskStatus.NOT_CONFIRMED,
|
TaskStatus.NOT_DEPARTED,
|
TaskStatus.DEPARTING,
|
TaskStatus.ARRIVED,
|
TaskStatus.RETURNING,
|
TaskStatus.IN_PROGRESS
|
];
|
return activeStatuses.includes(status);
|
}
|
|
/**
|
* 任务类型枚举
|
*/
|
export const TaskType = {
|
/** 维修保养 */
|
MAINTENANCE: 'MAINTENANCE',
|
|
/** 加油 */
|
FUEL: 'FUEL',
|
|
/** 其他 */
|
OTHER: 'OTHER',
|
|
/** 转运任务 */
|
EMERGENCY_TRANSFER: 'EMERGENCY_TRANSFER',
|
|
/** 福祉车 */
|
WELFARE: 'WELFARE',
|
|
// 旧格式(兼容用)
|
/** 维修保养(旧) */
|
maintenance: 'maintenance',
|
|
/** 加油(旧) */
|
refuel: 'refuel',
|
|
/** 巡检(旧) */
|
inspection: 'inspection',
|
|
/** 转运任务(旧) */
|
emergency: 'emergency',
|
|
/** 福祉车(旧) */
|
welfare: 'welfare'
|
};
|
|
/**
|
* 任务类型文本映射
|
*/
|
const TYPE_TEXT_MAP = {
|
// 新格式(数据库类型)
|
[TaskType.MAINTENANCE]: '维修保养',
|
[TaskType.FUEL]: '加油',
|
[TaskType.OTHER]: '其他',
|
[TaskType.EMERGENCY_TRANSFER]: '转运任务',
|
[TaskType.WELFARE]: '福祉车',
|
// 旧格式(UI 类型)
|
[TaskType.maintenance]: '维修保养',
|
[TaskType.refuel]: '加油',
|
[TaskType.inspection]: '巡检',
|
[TaskType.emergency]: '转运任务',
|
[TaskType.welfare]: '福祉车'
|
};
|
|
/**
|
* 获取任务类型文本
|
* @param {string} type - 任务类型代码
|
* @returns {string} 任务类型文本
|
*/
|
export function getTaskTypeText(type) {
|
return TYPE_TEXT_MAP[type] || '未知类型';
|
}
|
|
/**
|
* 获取所有任务类型选项(适用于选择器)
|
* @returns {Array} 类型选项数组
|
*/
|
export function getTaskTypeOptions() {
|
return Object.keys(TaskType).map(key => ({
|
value: TaskType[key],
|
label: TYPE_TEXT_MAP[TaskType[key]]
|
}));
|
}
|
|
// 默认导出
|
const TaskUtil = {
|
TaskStatus,
|
TaskType,
|
getStatusText,
|
getTaskStatusOptions,
|
getTaskTypeText,
|
getTaskTypeOptions,
|
isTaskCompleted,
|
isTaskCancelled,
|
isTaskInProgress
|
};
|
|
export default TaskUtil;
|