jordium-gantt-vue3
Version:
A Vue 3 Gantt chart component for project management, task scheduling, resource planning, calendar, resource usage and timeline visualization.
31 lines (30 loc) • 1.05 kB
TypeScript
import { Ref, ComputedRef } from 'vue';
import { Task } from '../../../../models/classes/Task';
/**
* TaskList 布局计算逻辑
* 包含虚拟滚动、任务扁平化、可见区域计算等
*/
export declare const ROW_HEIGHT = 51;
export declare const VERTICAL_BUFFER = 5;
export interface TaskWithLevel {
task: Task;
level: number;
}
export interface TaskWithLevelAndIndex extends TaskWithLevel {
rowIndex: number;
}
export interface VisibleTaskRange {
startIndex: number;
endIndex: number;
}
export declare function useTaskListLayout(tasks: Ref<Task[]>): {
taskListScrollTop: Ref<number, number>;
taskListBodyHeight: Ref<number, number>;
flattenedTasks: ComputedRef<TaskWithLevel[]>;
visibleTaskRange: ComputedRef<VisibleTaskRange>;
visibleTasks: ComputedRef<TaskWithLevelAndIndex[]>;
totalContentHeight: ComputedRef<number>;
startSpacerHeight: ComputedRef<number>;
endSpacerHeight: ComputedRef<number>;
getFlattenedVisibleTasks: (taskList: Task[], level?: number) => TaskWithLevel[];
};