Skip to content

组件属性 (Props)

EnhancedGanttChart (React)

完整的 React 组件属性列表:

基础属性

属性类型默认值必填说明
tasksTask[][]任务列表
dependenciesDependency[][]依赖关系列表
resourcesResource[][]资源列表
viewModeViewMode'week'视图模式
startDateDate自动计算甘特图开始日期
endDateDate自动计算甘特图结束日期

尺寸配置

属性类型默认值说明
columnWidthnumber60列宽(像素)
rowHeightnumber44行高(像素)
headerHeightnumber56表头高度(像素)

功能开关

属性类型默认值说明
enableDependenciesbooleantrue启用依赖关系
enableResourcesbooleanfalse启用资源视图
enableDraggingbooleantrue启用拖拽移动
enableResizingbooleantrue启用调整大小
enableProgressbooleantrue启用进度编辑
enableGroupingbooleanfalse启用任务分组
showWeekendsbooleantrue显示周末
showTodaybooleantrue显示今日线
showRowLinesbooleantrue显示行线
showColumnLinesbooleantrue显示列线
showResourceViewbooleanfalse显示资源视图
virtualScrollingbooleanfalse启用虚拟滚动
visibleTaskCountnumber50可见任务数量
bufferSizenumber10缓冲区大小

回调函数

属性类型说明
onTaskClick(task: Task, event: MouseEvent) => void任务点击回调
onTaskDrag(task: Task, event: MouseEvent, newStart: Date, newEnd: Date) => void任务拖拽回调
onTaskDragStart(task: Task) => void拖拽开始回调
onTaskDragEnd(task: Task) => void拖拽结束回调
onTaskResize(task: Task, newStart: Date, newEnd: Date) => void任务调整大小回调
onTaskDoubleClick(task: Task, event: MouseEvent) => void任务双击回调
onDateChange(startDate: Date, endDate: Date) => void日期范围变化回调
onProgressChange(task: Task, progress: number) => void进度变化回调
onViewChange(viewMode: ViewMode) => void视图模式变化回调
onTaskToggle(task: Task, collapsed: boolean) => void任务折叠状态变化回调
onScroll(scrollTop: number, scrollLeft: number) => void滚动回调
onScrollBottom() => void滚动到底部回调

样式相关

属性类型默认值说明
optionsGanttChartOptions{}配置选项
localeLocale'zh-CN'语言设置
modernUIbooleantrue使用现代 UI 样式
showViewSwitcherbooleantrue显示视图切换器
classNamestring''自定义类名
styleCSSProperties{}内联样式

Task 数据结构

typescript
interface Task {
  /** 唯一标识 */
  id: string
  
  /** 任务名称 */
  name: string
  
  /** 开始时间 */
  start: string | Date
  
  /** 结束时间 */
  end: string | Date
  
  /** 进度 (0-100) */
  progress?: number
  
  /** 任务类型 */
  type?: 'task' | 'milestone' | 'project'
  
  /** 是否折叠 */
  collapsed?: boolean
  
  /** 父任务 ID */
  parentId?: string
  
  /** 依赖任务 ID 列表 */
  dependencies?: string[]
  
  /** 自定义颜色 */
  color?: string
  
  /** 任务描述 */
  description?: string
  
  /** 分配的资源 ID */
  assignees?: string[]
  
  /** 备注 */
  notes?: string
  
  /** 是否可拖拽 */
  draggable?: boolean
  
  /** 是否可调整大小 */
  resizable?: boolean
}

ViewMode 类型

typescript
type ViewMode = 'day' | 'week' | 'month' | 'quarter' | 'year'
说明
day日视图
week周视图(默认)
month月视图
quarter季度视图
year年视图

GanttChartOptions

typescript
interface GanttChartOptions {
  /** 主题设置 */
  theme?: 'light' | 'dark' | 'auto'
  
  /** 任务默认颜色 */
  taskDefaultColor?: string
  
  /** 是否显示提示 */
  showTooltip?: boolean
  
  /** 是否启用动画 */
  enableAnimations?: boolean
  
  /** 拖拽节流(毫秒) */
  dragThrottle?: number
  
  /** 最小任务时长(毫秒) */
  minTaskDuration?: number
  
  /** 最大任务时长(毫秒) */
  maxTaskDuration?: number
  
  /** 磁吸阈值(像素) */
  snapThreshold?: number
  
  /** 是否启用磁吸 */
  enableSnap?: boolean
  
  /** 辅助线颜色 */
  guideColor?: string
  
  /** 关键路径颜色 */
  criticalPathColor?: string
  
  /** 关键路径线宽 */
  criticalPathWidth?: number
}

使用示例

tsx
import React from "react"
import { EnhancedGanttChart } from "@agions/gantt-flow"
import "@agions/gantt-flow/style"

function App() {
  return (
    <EnhancedGanttChart
      tasks={tasks}
      dependencies={dependencies}
      viewMode="week"
      columnWidth={80}
      rowHeight={50}
      headerHeight={60}
      enableDragging={true}
      enableResizing={true}
      enableProgress={true}
      enableDependencies={true}
      showToday={true}
      showWeekends={true}
      virtualScrolling={tasks.length > 100}
      onTaskClick={(task) => console.log("点击:", task)}
      onTaskDrag={(task, e, newStart, newEnd) => {
        console.log("拖拽:", task, newStart, newEnd)
      }}
      onProgressChange={(task, progress) => {
        console.log("进度:", task, progress)
      }}
      options={{
        theme: "auto",
        enableAnimations: true,
        enableSnap: true
      }}
    />
  )
}

相关链接

基于 MIT 许可证发布