jordium-gantt-vue3
Version:
A Vue 3 Gantt chart component for project management, task scheduling, resource planning, calendar, resource usage and timeline visualization.
92 lines (91 loc) • 3.03 kB
TypeScript
import { Task } from '../models/classes/Task';
import { Resource } from '../models/classes/Resource';
/**
* 检测两个任务的时间段是否重叠
* @param task1 任务1
* @param task2 任务2
* @returns 是否重叠
*/
export declare function isTaskTimeOverlap(task1: Task, task2: Task): boolean;
/**
* 检测资源的任务列表中是否存在资源超载冲突
* 逻辑:只要时间有交集的任务,资源占比总和超过100%,就认为是冲突
* @param resource 资源对象
* @returns 冲突的任务ID集合
*/
export declare function detectResourceConflicts(resource: Resource): Set<number>;
/**
* 检测所有资源的冲突情况
* @param resources 资源列表
* @returns Map<resourceId, Set<conflictTaskIds>>
*/
export declare function detectAllResourceConflicts(resources: Resource[]): Map<string | number, Set<number>>;
/**
* 计算资源利用率(时间窗口版:任务时长累加 / 时间窗口)
* @param resource 资源对象
* @param timeWindowDays 时间窗口(天数),默认30天
* @returns 利用率百分比(0-100+)
*/
export declare function calculateResourceUtilization(resource: Resource, timeWindowDays?: number): number;
/**
* 创建资源对象(工厂函数)
* @param data 资源数据
* @returns Resource 对象
*/
export declare function createResource(data: {
id: string | number;
name: string;
title?: string;
type?: string;
avatar?: string;
description?: string;
department?: string;
skills?: string[];
capacity?: number;
color?: string;
tasks?: Task[];
[key: string]: unknown;
}): Resource;
/**
* 添加任务到资源
* @param resource 资源对象
* @param task 任务对象
*/
export declare function addTaskToResource(resource: Resource, task: Task): void;
/**
* 从资源中移除任务
* @param resource 资源对象
* @param taskId 任务ID
*/
export declare function removeTaskFromResource(resource: Resource, taskId: number | string): void;
/**
* 获取资源的任务数量
* @param resource 资源对象
* @returns 任务数量
*/
export declare function getResourceTaskCount(resource: Resource): number;
/**
* 更新资源的利用率
* @param resource 资源对象
*/
export declare function updateResourceUtilization(resource: Resource): void;
/**
* 检测资源的任务是否存在时间重叠
* @param resource 资源对象
* @returns 是否存在任务重叠
*/
export declare function hasResourceTaskOverlap(resource: Resource): boolean;
/**
* 检测资源是否超载(基于占用比例)
* 超载定义:同一时间段内,资源总占用比例 > 100%
* @param resource 资源对象
* @returns 是否资源超载
*/
export declare function isResourceOverloaded(resource: Resource): boolean;
/**
* 获取任务中当前资源的利用率
* @param resource 资源对象
* @param task 任务对象
* @returns 占比百分比 (20-100),默认100
*/
export declare function getTaskAllocationPercent(resource: Resource, task: any): number;