v1.7.2 - add enableLinkAnchor prop

This commit is contained in:
LINING-PC\lining
2026-01-15 16:42:01 +08:00
parent 22621f1fa9
commit 5e9d0db206
6 changed files with 40 additions and 4 deletions
+7
View File
@@ -58,6 +58,7 @@ const props = withDefaults(defineProps<Props>(), {
taskListRowStyle: undefined,
enableTaskListContextMenu: true,
enableTaskBarContextMenu: true,
enableLinkAnchor: true,
fullscreen: false,
expandAll: true,
locale: 'zh-CN',
@@ -105,6 +106,9 @@ provide('gantt-column-slots', slots)
provide('enable-task-list-context-menu', computed(() => props.enableTaskListContextMenu))
provide('enable-task-bar-context-menu', computed(() => props.enableTaskBarContextMenu))
// 提供 LinkAnchor 配置给子组件
provide('enable-link-anchor', computed(() => props.enableLinkAnchor))
// 使用声明式右键菜单 composables
const { hasDeclarativeContextMenu: hasDeclarativeTaskListContextMenu, declarativeContextMenu: declarativeTaskListContextMenu } =
useTaskListContextMenu(slots)
@@ -194,6 +198,9 @@ interface Props {
// 当设置为 true 且声明了 TaskBarContextMenu 组件时,使用自定义菜单
// 当设置为 false 时,无论是否声明组件,TaskBar 右键菜单都失效
enableTaskBarContextMenu?: boolean
// 是否启用 LinkAnchor 连接触点功能(默认为 true)
// 当设置为 false 时,TaskBar 上不显示前置/后置任务的连接触点
enableLinkAnchor?: boolean
// 全屏状态控制(响应式)
fullscreen?: boolean
// 展开/收起所有任务(响应式)
+5 -2
View File
@@ -10,6 +10,9 @@ import { useI18n } from '../composables/useI18n'
import type { TaskBarConfig } from '../models/configs/TaskBarConfig'
import { DEFAULT_TASK_BAR_CONFIG } from '../models/configs/TaskBarConfig'
// 从 GanttChart 注入 enableLinkAnchor 配置
const enableLinkAnchor = inject<ComputedRef<boolean>>('enable-link-anchor', computed(() => true))
interface Props {
task: Task
rowHeight: number
@@ -2547,7 +2550,7 @@ const handleAnchorDragEnd = (anchorEvent: { taskId: number; type: 'predecessor'
<!-- 连接线触点 - 只在非高亮模式且非父级任务时显示 -->
<!-- 前置任务触点(左侧) -->
<LinkAnchor
v-if="!isParent && !isInHighlightMode"
v-if="enableLinkAnchor && !isParent && !isInHighlightMode"
type="predecessor"
:task-id="task.id"
:visible="isTaskBarHovered"
@@ -2561,7 +2564,7 @@ const handleAnchorDragEnd = (anchorEvent: { taskId: number; type: 'predecessor'
/>
<!-- 后置任务触点(右侧) -->
<LinkAnchor
v-if="!isParent && !isInHighlightMode"
v-if="enableLinkAnchor && !isParent && !isInHighlightMode"
type="successor"
:task-id="task.id"
:visible="isTaskBarHovered"