UNPKG

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
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;