From 7574ca1324de2f3a3dad23bd0a76c9997a661db7 Mon Sep 17 00:00:00 2001 From: hwj Date: Mon, 20 Apr 2026 17:50:50 +0800 Subject: [PATCH] =?UTF-8?q?style=EF=BC=9A=E4=BF=AE=E5=A4=8D=E7=94=98?= =?UTF-8?q?=E7=89=B9=E5=9B=BE=E4=BF=9D=E5=AD=98=E5=90=8E=E5=BC=B9=E6=A1=86?= =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/ScheduleGanttPanelEditable.vue | 51 +++++++++++-------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/src/views/mes/tasksummary/components/ScheduleGanttPanelEditable.vue b/src/views/mes/tasksummary/components/ScheduleGanttPanelEditable.vue index c45f4467..38f00989 100644 --- a/src/views/mes/tasksummary/components/ScheduleGanttPanelEditable.vue +++ b/src/views/mes/tasksummary/components/ScheduleGanttPanelEditable.vue @@ -492,6 +492,11 @@ const movePlanDataToDevice = (task: any, targetDeviceTaskId: string | number, so } const normalizeDeviceChildren = (deviceTaskId: string | number, priorityTaskId?: string | number) => { + try { + gantt.getTask(deviceTaskId) + } catch { + return + } const childTaskIds = gantt.getChildren(deviceTaskId) if (!Array.isArray(childTaskIds) || !childTaskIds.length) return const childTasks = childTaskIds @@ -513,28 +518,32 @@ const normalizeDeviceChildren = (deviceTaskId: string | number, priorityTaskId?: } const refreshPlanLinksByRowOrder = () => { - const allLinks = gantt.getLinks() - allLinks.forEach((item: any) => gantt.deleteLink(item.id)) - let linkIndex = 1 - const deviceTaskIds = gantt.getChildren(0) - deviceTaskIds.forEach((deviceTaskId: string | number) => { - const childTaskIds = gantt.getChildren(deviceTaskId).filter((childId: string | number) => { - const task = gantt.getTask(childId) - return !!task?._planData - }) - let previousTaskId: string | number | null = null - childTaskIds.forEach((taskId: string | number) => { - if (previousTaskId !== null) { - gantt.addLink({ - id: `link-${linkIndex++}`, - source: previousTaskId, - target: taskId, - type: '0' + try { + const allLinks = gantt.getLinks() + allLinks.forEach((item: any) => gantt.deleteLink(item.id)) + let linkIndex = 1 + const deviceTaskIds = gantt.getChildren(0) + deviceTaskIds.forEach((deviceTaskId: string | number) => { + try { + const childTaskIds = gantt.getChildren(deviceTaskId).filter((childId: string | number) => { + const task = gantt.getTask(childId) + return !!task?._planData }) - } - previousTaskId = taskId + let previousTaskId: string | number | null = null + childTaskIds.forEach((taskId: string | number) => { + if (previousTaskId !== null) { + gantt.addLink({ + id: `link-${linkIndex++}`, + source: previousTaskId, + target: taskId, + type: '0' + }) + } + previousTaskId = taskId + }) + } catch {} }) - }) + } catch {} } const getDeviceInsertIndex = (deviceTaskId: string | number, startDate: dayjs.Dayjs) => { @@ -672,8 +681,8 @@ const applyTaskAdjust = (task: any, targetDeviceTaskId: string | number, startDa syncPlanTimeFromTask(task) normalizeDeviceChildren(targetDeviceTaskId, task.id) if (sourceDeviceTaskId && sourceDeviceTaskId !== targetDeviceTaskId) { - normalizeDeviceChildren(sourceDeviceTaskId) removeDeviceFromGanttIfNoCurrent(sourceDeviceTaskId) + normalizeDeviceChildren(sourceDeviceTaskId) } refreshPlanLinksByRowOrder() refreshTimelineRangeByTasks()