jordium-gantt-vue3
Version:
A Vue 3 Gantt chart component for project management, task scheduling, resource planning, calendar, resource usage and timeline visualization.
29 lines (28 loc) • 1.16 kB
TypeScript
import { Ref } from 'vue';
import { Task } from '../models/classes/Task';
export interface CalendarTaskDragDelta {
deltaX: number;
deltaY: number;
}
export interface UseCalendarTaskDragOptions {
/** 禁用后不响应任何拖拽/点击事件(对应 disabled prop) */
disabled?: Ref<boolean>;
/** 拖拽过程中持续触发,仅用于本地预览渲染 */
onDragMove?: (task: Task, delta: CalendarTaskDragDelta, event: MouseEvent) => void;
/** 拖拽松开时触发一次,用于提交最终的任务移动结果 */
onDragEnd?: (task: Task, delta: CalendarTaskDragDelta, event: MouseEvent) => void;
/** 未产生有效位移(视为点击)时触发 */
onClick?: (task: Task, event: MouseEvent) => void;
}
export declare function useCalendarTaskDrag(options: UseCalendarTaskDragOptions): {
isDragging: Ref<boolean, boolean>;
draggingTaskId: Ref<number | null, number | null>;
dragDelta: Ref<{
deltaX: number;
deltaY: number;
}, CalendarTaskDragDelta | {
deltaX: number;
deltaY: number;
}>;
handleMouseDown: (task: Task, event: MouseEvent) => void;
};