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 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插入到任务树中 // 新增Task插入到任务树中
// 插入新任务到任务树(parentId 已在打开 TaskDrawer 时预设好) // 插入新任务到任务树(parentId 已在打开 TaskDrawer 时预设好)
const insertTask = (tasks: Task[], newTask: Task) => { const insertTask = (tasks: Task[], newTask: Task) => {
@@ -2276,6 +2288,8 @@ function handleMilestoneDialogDelete(milestoneId: number) {
@stop-timer="handleStopTimer" @stop-timer="handleStopTimer"
@add-predecessor="handleAddPredecessor" @add-predecessor="handleAddPredecessor"
@add-successor="handleAddSuccessor" @add-successor="handleAddSuccessor"
@predecessor-added="handlePredecessorAdded"
@successor-added="handleSuccessorAdded"
@delete="handleTaskDelete" @delete="handleTaskDelete"
> >
<template v-if="$slots['custom-task-content']" #custom-task-content="barScope"> <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') => { const createLink = (sourceTask: Task, targetTask: Task, mode: 'predecessor' | 'successor') => {
console.log("----> hello:", {
mode,
sourceTask,
targetTask,
})
if (mode === 'predecessor') { if (mode === 'predecessor') {
// // mode='predecessor' anchor
const predecessorIds = targetTask.predecessor ? getPredecessorIds(targetTask.predecessor) : [] // anchor sourceTask targetTask
if (!predecessorIds.includes(sourceTask.id)) { // targetTask.id sourceTask.predecessor
predecessorIds.push(sourceTask.id) const predecessorIds = sourceTask.predecessor ? getPredecessorIds(sourceTask.predecessor) : []
// if (!predecessorIds.includes(targetTask.id)) {
if (Array.isArray(targetTask.predecessor)) { predecessorIds.push(targetTask.id)
targetTask.predecessor = predecessorIds sourceTask.predecessor = predecessorIds
} else {
targetTask.predecessor = predecessorIds.join(',')
}
// //
updateTask(targetTask) updateTask(sourceTask)
// predecessor-added // predecessor-added
emit('predecessor-added', { targetTask, newTask: sourceTask }) emit('predecessor-added', { targetTask: sourceTask, newTask: targetTask })
} }
} else { } else {
// ID // mode='successor' anchor
// predecessor // anchor sourceTask targetTask
// "" // sourceTask.id targetTask.predecessor
const predecessorIds = targetTask.predecessor ? getPredecessorIds(targetTask.predecessor) : [] const predecessorIds = targetTask.predecessor ? getPredecessorIds(targetTask.predecessor) : []
if (!predecessorIds.includes(sourceTask.id)) { if (!predecessorIds.includes(sourceTask.id)) {
predecessorIds.push(sourceTask.id) predecessorIds.push(sourceTask.id)
// targetTask.predecessor = predecessorIds
if (Array.isArray(targetTask.predecessor)) {
targetTask.predecessor = predecessorIds
} else {
targetTask.predecessor = predecessorIds.join(',')
}
// //
updateTask(targetTask) updateTask(targetTask)
// successor-added // successor-added
emit('successor-added', { targetTask: sourceTask, newTask: targetTask }) emit('successor-added', { targetTask, newTask: sourceTask })
} }
} }
} }