jordium-gantt-vue3
Version:
A Vue 3 Gantt chart component for project management, task scheduling, resource planning, calendar, resource usage and timeline visualization.
169 lines (168 loc) • 5.11 kB
TypeScript
/**
* 布局常量定义
* v1.9.4 P1优化 - 统一管理魔法数字,便于维护和主题定制
*
* @module LayoutConstants
*/
/**
* 时间轴布局常量
*/
export declare const TIMELINE_LAYOUT: {
/** 日视图:每天的宽度(px) */
readonly DAY_WIDTH: 30;
/** 周视图:每周的宽度(px) */
readonly WEEK_WIDTH: 60;
/** 月视图:每月的宽度(px) */
readonly MONTH_WIDTH: 60;
/** 季度视图:每季度的宽度(px) */
readonly QUARTER_WIDTH: 60;
/** 年视图:每半年的宽度(px) */
readonly HALF_YEAR_WIDTH: 180;
};
/**
* 任务列表布局常量
*/
export declare const TASK_LIST_LAYOUT: {
/** 任务行默认高度(px) */
readonly ROW_HEIGHT: 30;
/** 任务行最小高度(px) */
readonly ROW_MIN_HEIGHT: 24;
/** 任务行最大高度(px) */
readonly ROW_MAX_HEIGHT: 60;
/** 任务缩进基础值(px) */
readonly INDENT_BASE: 10;
/** 每级缩进增加(px) */
readonly INDENT_STEP: 20;
/** 任务名称列最小宽度(px) */
readonly NAME_COLUMN_MIN_WIDTH: 150;
/** 任务名称列默认宽度(px) */
readonly NAME_COLUMN_DEFAULT_WIDTH: 300;
};
/**
* TaskBar 布局常量
*/
export declare const TASK_BAR_LAYOUT: {
/** TaskBar 高度(px) */
readonly HEIGHT: 24;
/** TaskBar 最小宽度(px) */
readonly MIN_WIDTH: 4;
/** TaskBar 圆角(px) */
readonly BORDER_RADIUS: 4;
/** TaskBar 边框宽度(px) */
readonly BORDER_WIDTH: 1;
/** TaskBar 悬停边框宽度(px) */
readonly HOVER_BORDER_WIDTH: 2;
/** 里程碑菱形大小(px) */
readonly MILESTONE_SIZE: 20;
/** TaskBar 垂直偏移(px,对齐行中心) */
readonly VERTICAL_OFFSET: 3;
};
/**
* 资源Tab布局常量
*/
export declare const RESOURCE_TAB_LAYOUT: {
/** Tab 默认宽度(px) */
readonly DEFAULT_WIDTH: 30;
/** Tab 最大宽度(px) */
readonly MAX_WIDTH: 50;
/** Tab 高度(px) */
readonly HEIGHT: 20;
/** Tab 边距(px) */
readonly MARGIN: 2;
/** 展开面板最大高度(px) */
readonly PANEL_MAX_HEIGHT: 400;
/** 展开面板边距(px) */
readonly PANEL_MARGIN: 10;
};
/**
* 冲突可视化布局常量
*/
export declare const CONFLICT_LAYOUT: {
/** 冲突边框宽度(px) */
readonly BORDER_WIDTH: 2;
/** 警告图标大小(px) */
readonly WARNING_ICON_SIZE: 16;
/** 警告图标内边距(px) */
readonly WARNING_ICON_PADDING: 4;
/** 纹理pattern尺寸(px) */
readonly PATTERN_SIZE: 10;
/** 冲突等级阈值 */
readonly THRESHOLDS: {
/** 轻度冲突(>100%) */
readonly LIGHT: 100;
/** 中度冲突(>120%) */
readonly MEDIUM: 120;
/** 严重冲突(>150%) */
readonly SEVERE: 150;
};
};
/**
* 动画时长常量(ms)
*/
export declare const ANIMATION_DURATION: {
/** 快速动画(悬停、tooltip) */
readonly FAST: 100;
/** 标准动画(折叠展开、过渡) */
readonly NORMAL: 200;
/** 慢速动画(拖拽、缩放) */
readonly SLOW: 300;
/** TaskBarTab 防抖延迟 */
readonly DEBOUNCE_DELAY: 50;
/** 隐藏延迟 */
readonly HIDE_DELAY: 100;
};
/**
* Z-Index 层级常量
*/
export declare const Z_INDEX: {
/** Timeline 基础层 */
readonly TIMELINE_BASE: 1;
/** TaskBar 正常层 */
readonly TASK_BAR: 100;
/** TaskBar 拖拽中 */
readonly TASK_BAR_DRAGGING: 200;
/** 冲突可视化层(需要在TaskBar之上) */
readonly CONFLICTS: 250;
/** 资源Tab展开面板 */
readonly RESOURCE_TAB_PANEL: 300;
/** 右键菜单 */
readonly CONTEXT_MENU: 500;
/** 对话框 */
readonly DIALOG: 1000;
/** Tooltip */
readonly TOOLTIP: 2000;
};
/**
* 颜色常量
*/
export declare const COLORS: {
/** 冲突颜色 */
readonly CONFLICTS: {
readonly LIGHT: "rgba(255,220,0,0.15)";
readonly MEDIUM: "rgba(255,165,0,0.15)";
readonly SEVERE: "rgba(255,69,0,0.2)";
readonly BORDER: "#f56c6c";
readonly WARNING: "#faad14";
};
/** 任务状态颜色 */
readonly TASK_STATUS: {
readonly NORMAL: "#409eff";
readonly WARNING: "#e6a23c";
readonly DANGER: "#f56c6c";
readonly SUCCESS: "#67c23a";
};
};
/**
* 性能优化常量
*/
export declare const PERFORMANCE: {
/** 区间树算法切换阈值(任务数) */
readonly INTERVAL_TREE_THRESHOLD: 100;
/** Canvas增量重绘阈值(变化率) */
readonly INCREMENTAL_REPAINT_THRESHOLD: 0.5;
/** 性能监控日志阈值(ms) */
readonly PERF_LOG_THRESHOLD: 50;
/** 虚拟滚动缓冲区行数 */
readonly VIRTUAL_SCROLL_BUFFER: 5;
};
export type LayoutConstants = typeof TIMELINE_LAYOUT | typeof TASK_LIST_LAYOUT | typeof TASK_BAR_LAYOUT | typeof RESOURCE_TAB_LAYOUT | typeof CONFLICT_LAYOUT | typeof ANIMATION_DURATION | typeof Z_INDEX | typeof COLORS | typeof PERFORMANCE;