| | |
| | | [BarcodeBizTypeEnum.WORKORDER]: 'project', |
| | | [BarcodeBizTypeEnum.TASK]: 'task', |
| | | }; |
| | | gantt.parse({ |
| | | data: tasks.map((item: any) => ({ |
| | | const data = tasks |
| | | .map((item: any) => ({ |
| | | ...item, |
| | | type: typeMap[item.type] || item.type, |
| | | start_date: item.startDate ? new Date(item.startDate) : undefined, |
| | | end_date: item.endDate ? new Date(item.endDate) : undefined, |
| | | })), |
| | | links: [], |
| | | }); |
| | | })) |
| | | // 过滤缺失/非法日期的任务,避免 dhtmlx-gantt 计算时间轴时抛 valueOf 异常 |
| | | .filter( |
| | | (task: any) => |
| | | task.start_date instanceof Date && |
| | | task.end_date instanceof Date && |
| | | !Number.isNaN(task.start_date.getTime()) && |
| | | !Number.isNaN(task.end_date.getTime()), |
| | | ); |
| | | if (data.length === 0) { |
| | | return; |
| | | } |
| | | try { |
| | | gantt.parse({ data, links: [] }); |
| | | } catch (error) { |
| | | console.error('甘特图渲染失败:', error); |
| | | } |
| | | } |
| | | |
| | | watch( |