vue.js中使用甘特图(gantt-elastic)的使用

本文介绍在Vue.js项目中如何使用gantt-elastic插件进行任务进度跟踪。在详细阐述安装过程、代码导入、任务设置及选项配置的同时,分享了在缺乏官方文档的情况下,通过研究源码解决配置问题的经验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在vue中使用甘特图(gantt-elastic)做进度跟踪
公司要使用甘特图插件来跟踪任务的进度 ,在使用这个插件的过程中踩了太多的坑了,很多配置都没有文档的 连英文文档都没有,然后就看了源码研究了下具体的配置,具体的配置我都在下面的文章中截图有备注了。如果说有什么问题给我留言 我这边会在看到的第一时间回复。

一、首先要安装gantt-elastic这个插件
在npm官网上下载 https://www.npmjs.com/package/gantt-elastic
npm install --save gantt-elastic
npm install --save gantt-elastic-header
gantt-elastic-header 这个可以按照需求安装
甘特图的展示
二、安装之后 在代码中使用
html的使用
1.要 import GanttElastic from “gantt-elastic”;
import dayjs from “dayjs”;
import GanttHeader from “gantt-elastic-header”;//这个根据需求引入

2、设置tasks
tasks设置
4、options设置
options设置
5、方法的调用
在这里插入图片描述
在这里插入图片描述

三、具体的代码

<template>
    <div  >
        <gantt-elastic
            v-show="showGantt"
            :options="options"
            :tasks="tasks"
            @tasks-changed="tasksUpdates" 
             @options-changed="optionsUpdate"
            @dynamic-style-changed="styleUpdate"
            >
        </gantt-elastic>
      
            <!-- -->
    </div>
</template>

<style>
</style>
<script>
import GanttElastic from "gantt-elastic";
import dayjs from "dayjs";
// import GanttHeader from "gantt-elastic-header";

//tasks是数据 真实的项目需要接口赋值数据
let that
let options = {
      taskMapping: {
        progress: "percent"
      },
      maxRows: 10, 
      maxHeight: 500,
      // title: {
      //   label: "Your project title as html (link or wh
### Vue-Gantt-Elastic 使用指南 #### 安装方法 为了在项目中集成 `gantt-elastic` 和其头部组件 `gantt-elastic-header`,可以通过 npm 或者 cnpm 来安装这些依赖包。对于使用 npm 的开发者来说,执行如下命令来安装必要的库: ```bash npm install --save gantt-elastic gantt-elastic-header dayjs ``` 而对于更偏好于 cnpm 的用户,则应运行以下指令完成相同的操作[^2]。 ```bash cnpm install gantt-elastic --save cnpm install gantt-elastic-header --save cnpm install dayjs --save ``` #### 示例代码 一旦完成了上述软件包的安装,在 Vue 组件内部就可以按照下面的方式导入并初始化甘特图及其附加头文件: ```javascript import GanttElastic from 'gantt-elastic' import GanttElasticHeader from 'gantt-elastic-header' import DayJs from 'dayjs' export default { components: { GanttElastic, GanttElasticHeader }, data() { return { tasks: [ /* ... */ ], options: new Options({ locale: Locale.en, viewMode: ViewMode.Day }), taskPositionMoveHandler: (task) => console.log('Task moved', task), barUpdateHandler: (bar) => console.log('Bar updated', bar) } } } ``` 此段代码展示了如何创建一个新的甘特图表实例,并设置了一些基本属性和事件监听器以便更好地控制交互行为[^1]。 #### 表格高度调整 针对希望使表格的高度能够响应屏幕尺寸变化的需求,无需修改框架的核心源码即可实现这一目标。具体做法是在样式表里定义 CSS 规则或是利用 JavaScript 动态计算容器大小,从而确保甘特图始终占据可用空间而不溢出视窗范围[^3]。 例如,可以在根级样式中加入类似这样的规则: ```css .gantt-container { height: calc(100vh - 50px); /* 减去顶部导航栏或其他固定元素占用的空间 */ } ``` 或者采用编程方式处理窗口大小改变事件: ```javascript mounted () { window.addEventListener('resize', this.resizeHandler); }, methods: { resizeHandler () { const containerHeight = `${window.innerHeight}px`; document.querySelector('.gantt-container').style.height = containerHeight; } } ```
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值