fix:可视化事件发送问题

This commit is contained in:
qiuchengw
2025-12-03 14:01:37 +08:00
parent f13a1ff128
commit c98c6a12f0
2 changed files with 33 additions and 22 deletions
+14
View File
@@ -2046,6 +2046,18 @@ function handleAddSuccessor(targetTask: Task) {
taskDrawerVisible.value = true
}
// 处理前置任务已添加事件(拖拽连接完成)
function handlePredecessorAdded(event: { targetTask: Task; newTask: Task }) {
// 直接转发事件给外部
emit('predecessor-added', event)
}
// 处理后置任务已添加事件(拖拽连接完成)
function handleSuccessorAdded(event: { targetTask: Task; newTask: Task }) {
// 直接转发事件给外部
emit('successor-added', event)
}
// 新增Task插入到任务树中
// 插入新任务到任务树(parentId 已在打开 TaskDrawer 时预设好)
const insertTask = (tasks: Task[], newTask: Task) => {
@@ -2276,6 +2288,8 @@ function handleMilestoneDialogDelete(milestoneId: number) {
@stop-timer="handleStopTimer"
@add-predecessor="handleAddPredecessor"
@add-successor="handleAddSuccessor"
@predecessor-added="handlePredecessorAdded"
@successor-added="handleSuccessorAdded"
@delete="handleTaskDelete"
>
<template v-if="$slots['custom-task-content']" #custom-task-content="barScope">
+19 -22
View File
@@ -1048,39 +1048,36 @@ const hasCircularDependency = (taskId: number, targetId: number): boolean => {
//
const createLink = (sourceTask: Task, targetTask: Task, mode: 'predecessor' | 'successor') => {
console.log("----> hello:", {
mode,
sourceTask,
targetTask,
})
if (mode === 'predecessor') {
//
const predecessorIds = targetTask.predecessor ? getPredecessorIds(targetTask.predecessor) : []
if (!predecessorIds.includes(sourceTask.id)) {
predecessorIds.push(sourceTask.id)
//
if (Array.isArray(targetTask.predecessor)) {
targetTask.predecessor = predecessorIds
} else {
targetTask.predecessor = predecessorIds.join(',')
}
// mode='predecessor' anchor
// anchor sourceTask targetTask
// targetTask.id sourceTask.predecessor
const predecessorIds = sourceTask.predecessor ? getPredecessorIds(sourceTask.predecessor) : []
if (!predecessorIds.includes(targetTask.id)) {
predecessorIds.push(targetTask.id)
sourceTask.predecessor = predecessorIds
//
updateTask(targetTask)
updateTask(sourceTask)
// predecessor-added
emit('predecessor-added', { targetTask, newTask: sourceTask })
emit('predecessor-added', { targetTask: sourceTask, newTask: targetTask })
}
} else {
// ID
// predecessor
// ""
// mode='successor' anchor
// anchor sourceTask targetTask
// sourceTask.id targetTask.predecessor
const predecessorIds = targetTask.predecessor ? getPredecessorIds(targetTask.predecessor) : []
if (!predecessorIds.includes(sourceTask.id)) {
predecessorIds.push(sourceTask.id)
//
if (Array.isArray(targetTask.predecessor)) {
targetTask.predecessor = predecessorIds
} else {
targetTask.predecessor = predecessorIds.join(',')
}
targetTask.predecessor = predecessorIds
//
updateTask(targetTask)
// successor-added
emit('successor-added', { targetTask: sourceTask, newTask: targetTask })
emit('successor-added', { targetTask, newTask: sourceTask })
}
}
}