UNPKG

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
/** * 布局常量定义 * 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;