当前位置:首页 > VUE

vue实现车间甘特图

2026-03-10 09:53:37VUE

使用Vue实现车间甘特图

安装依赖

需要安装vue-ganttastic或其他甘特图库,例如:

npm install vue-ganttastic

基础甘特图实现

在Vue组件中引入并配置甘特图:

<template>
  <gantt-chart
    :tasks="tasks"
    :options="options"
  />
</template>

<script>
import { GanttChart } from 'vue-ganttastic';

export default {
  components: { GanttChart },
  data() {
    return {
      tasks: [
        { id: 1, name: '任务A', start: '2023-01-01', end: '2023-01-05' },
        { id: 2, name: '任务B', start: '2023-01-06', end: '2023-01-10' }
      ],
      options: {
        viewMode: 'day',
        style: { height: '500px' }
      }
    };
  }
};
</script>

动态数据绑定

通过API获取车间任务数据并更新甘特图:

async fetchTasks() {
  const response = await axios.get('/api/workshop-tasks');
  this.tasks = response.data.map(task => ({
    id: task.id,
    name: task.name,
    start: task.start_date,
    end: task.end_date,
    progress: task.progress
  }));
}

自定义样式与交互

覆盖默认样式并添加事件处理:

<gantt-chart
  @task-clicked="handleTaskClick"
  :style="{ '--bar-color': '#4CAF50' }"
/>

时间轴配置

调整时间轴显示粒度:

options: {
  viewMode: 'hour', // 支持day/week/month/hour
  timeFormat: 'YYYY-MM-DD HH:mm',
  columnWidth: 30
}

高级功能实现

添加拖拽调整和依赖关系:

options: {
  draggable: true,
  dependencies: {
    enabled: true,
    data: [
      { from: 1, to: 2, type: 'FS' } // FS表示Finish-to-Start依赖
    ]
  }
}

响应式设计

通过计算属性动态调整配置:

computed: {
  chartOptions() {
    return {
      ...this.options,
      style: {
        height: this.isMobile ? '300px' : '600px'
      }
    };
  }
}

替代方案

若需要更复杂的车间调度功能,可考虑:

  • 使用dhtmlxGantt商业库
  • 基于Echarts自定义实现
  • 集成FullCalendar的甘特图插件

性能优化

对于大规模数据:

options: {
  virtualScroll: true,
  rowHeight: 40,
  visibleRows: 20
}

典型车间功能扩展

添加机器负载视图:

vue实现车间甘特图

tasks: [
  {
    id: 1,
    name: 'CNC-01',
    tasks: [
      { id: 11, name: '工件A', start: '2023-01-01 08:00', end: '2023-01-01 12:00' }
    ]
  }
]

标签: 车间甘特图
分享给朋友:

相关文章

vue实现甘特图

vue实现甘特图

Vue 实现甘特图的方法 使用开源库(推荐) Vue-Ganttastic 是一个专为 Vue 设计的轻量级甘特图库,支持拖拽、缩放和自定义样式。安装后可直接嵌入组件: npm install vu…

vue实现甘特图展示

vue实现甘特图展示

使用Vue-Gantt组件库(如vue-gantt-elastic) 安装依赖包: npm install vue-gantt-elastic 基础实现代码: <template&g…

vue实现车间甘特图

vue实现车间甘特图

Vue 实现车间甘特图的方法 使用第三方库(如 dhtmlx-gantt) dhtmlx-gantt 是一个功能强大的甘特图库,支持 Vue 集成。安装后可直接在组件中使用,提供任务管理、时间轴调整和…

vue实现好看的甘特图

vue实现好看的甘特图

使用Vue-Ganttastic库 Vue-Ganttastic是一个轻量级的Vue甘特图组件,支持拖拽、缩放和自定义样式。安装后可直接在项目中引入,通过配置数据源和任务项快速生成交互式甘特图。…

h5 实现甘特图

h5 实现甘特图

使用HTML5和JavaScript实现甘特图 HTML5结合JavaScript可以创建交互式甘特图,以下是实现方法: Canvas绘图基础 <canvas id="ganttChart"…

甘特图vue实现

甘特图vue实现

使用 vue-ganttastic 库实现甘特图 安装 vue-ganttastic 库 npm install vue-ganttastic 基础用法示例 <template>…