Skip to content

Vue API

@iyotsuba/gantt-vue 导出 YgGantt、完整公开类型,并重新导出 Core 类型与算法。

Props

数据、视图与联动

属性类型默认值说明
tasksGanttTask[]必填当前任务窗口
linksGanttLink[][]依赖关系
dataMode'auto' | 'reactive' | 'immutable''auto'大数据可使用不可变模式
viewViewPresetId'week'支持 v-model:view
timelineRangeGanttTimelineRange数据范围任意日期范围
autoFocusboolean | AutoFocusOptionstrue密集、最早或今天聚焦
groupIdstring''联动组 ID
sync'none' | 'scroll' | 'view' | 'all''none'联动范围
selectedTaskIdstring''受控选中任务
readonlybooleanfalse禁用任务拖动与缩放

布局与任务表

属性类型默认值说明
title / heightstring / number'项目计划' / 330标题与固定高度
showToolbar / showTaskTablebooleantrue工具栏与任务表显隐
sidebarWidthnumber320支持 v-model:sidebar-width
minSidebarWidth / maxSidebarWidthnumber240 / 520分栏限制
sidebarResizeStepnumber8分栏吸附步长
resizableSidebarbooleantrue允许拖动和键盘调整
taskTableColumnsGanttTaskColumnConfig[]内置三列支持 v-model:task-table-columns
autoFitTaskColumnsbooleanfalse根据表头与样本内容自适应
taskColumnAutoFitSampleSizenumber500自适应抽样上限
resizableTaskColumnsbooleantrue允许列级调整
taskColumnResizeStepnumber4列宽吸附步长
rowHeightnumber46行高
barHeight / barMinWidthnumber28 / 28普通任务条几何
projectBarHeight / milestoneSizenumber18 / 16项目条和里程碑尺寸
barLayoutResolver(context) => options-逐任务覆盖宽、高、最小宽度和圆角

虚拟化与远程窗口

属性类型默认值说明
virtualizeRows / virtualizeColumnsbooleantrue双向虚拟化
rowVirtualizationThresholdnumber120行阈值
columnVirtualizationThresholdnumber180时间格阈值
rowOverscan / columnOverscannumber6 / 3预渲染窗口
totalTaskCountnumber0远程总行数;0 使用 tasks.length
taskOffsetnumber0当前远程窗口起始行

交互、动效与外观

属性类型默认值说明
enableCtrlZoombooleantrueCtrl / Command 滚轮切换维度
ctrlZoomThreshold / ctrlZoomCooldownnumber260 / 360灵敏度与冷却毫秒数
zoomnumber1外部像素密度
snapToGridbooleantrue拖动按当前时间格吸附
snapResolver(context) => date-自定义吸附算法
motion'smooth' | 'snappy' | 'none''smooth'基础运动节奏
viewTransition'fade-slide' | 'scale-fade' | 'none''fade-slide'维度过渡
transitionHook(context) => void-宿主过渡钩子
viewportEnterEffect'fade' | 'fade-slide' | 'scale-fade' | 'none''fade-slide'新虚拟行入场
viewportEnterDurationnumber180入场毫秒数
animationPolicy'auto' | 'all' | 'selected' | 'none''auto'持续动效范围
maxAnimatedTasks / maxAnimatedDependenciesnumber10 / 6视口动效预算
pauseAnimationsDuringScrollbooleantrue滚动时暂停持续动效
gridStyle'line' | 'banded' | 'soft' | 'contrast''line'网格模板
taskEffect / dependencyEffectCore effect 类型'none'基础动效
taskPattern / gridPatternGanttPatternOptions | falsefalse四叶草或上传图片纹理
showEdgeIndicatorsbooleantrue逐行视口外任务入口

依赖线几何可使用 dependencyLineWidthdependencyHitWidthdependencyCurveRadiusdependencyArrowSize 调整,也可用 dependencyPathResolverdependencyStyleResolverdependencyEffectResolver 完全接管。任务效果用 taskEffectResolver 按业务字段决定。

事件

事件载荷说明
update:viewViewPresetIdv-model:view
update:sidebarWidthnumberv-model:sidebar-width
update:taskTableColumnsGanttTaskColumnConfig[]列配置变化
task-changeTaskChangePayload移动或缩放建议值
task-clickTaskClickPayload单击任务行或任务条
task-dblclickTaskDoubleClickPayload双击任务
task-column-resizeTaskColumnResizePayload指针、键盘、API 或自适应改列宽
link-dblclickLinkDoubleClickPayload双击或回车编辑依赖线
task-selectGanttTask | null选中变化
focus / scrollDate聚焦或滚动中心日期
visible-range-changeGanttVisibleRangePayload当前日期与行窗口

Slots

插槽作用域用途
toolbar-extraview, syncActive, focus工具栏命令
task-header / owner-header / progress-header-三列表头
tasktask, selected, status任务列
ownertask负责人列
progresstask, value进度列
bartask, progress任务条内容
bar-patterntask, pattern纹理层
bar-effecttask, effect动效层
grid-patternpattern网格纹理
dependencycontext, path, markerId, style, edit完整依赖线 SVG
edge-indicatorside, count, task, rowIndex, jump行级边缘入口
empty-空数据状态

公开方法

ts
focus(request?)
scrollToDate(date, animate?)
scrollTaskIntoView(taskId, animate?)
scrollToRow(rowIndex, animate?)
fitToData(animate?)
getAnchorDate()
setView(view)
selectTask(taskId)
getRenderStats()
setTaskColumnWidth(columnId, width)
fitTaskColumns()

使用 ref<YgGanttExposed | null>() 获得完整类型提示。

以 MIT License 开源