一.介绍jsGannt Improved

jsGannt Improved是甘特图:完全使用JS和CSS构建的功能齐全的甘特图组件。不需要图像或外部libs。

二.使用jsGannt Improved

1.首先安装依赖

npm i -S jsgantt-improved

2.其次项目中引入

官方导入  

import {JSGantt} from 'jsgantt-improved' 

这里虽然是官方导入  但是我引入之后打印JSGgntt不存在  看了一下源码

不是exports导入  所以解构无效

我的导入方法(同时记得引入样式文件)

import * as JSGantt from "jsgantt-improved";
import "jsgantt-improved/dist/jsgantt.css" // 引入样式文件

3.使用

类似于echarts

首先实例化

let trys = document.getElementById("trys");
let g = new JSGantt.GanttChart(trys, "day");

GanttChart(第一个参数为HTML里的一个div对象,第二个则是给甘特图指定一种视图格式,如以“hour”,“day”,“week”,“month”或“quarter”格式绘制  必填)

其次就是加载数据

源码当中有这么多参数

我使用的是AddTaskItemObject()方法

g.AddTaskItemObject({pID: 1,pName: "Define Chart API",pStart: "2017-02-25",pEnd: "2017-03-17",pPlanStart: "2017-04-01",pPlanEnd: "2017-04-15 12:00",pClass: "ggroupblack",pLink: "",pMile: 0,pRes: "Brian",pComp: 0,pGroup: 1,pParent: 0,pOpen: 1,pDepend: "",pCaption: "",pCost: 1000,pNotes: "Some Notes text",category: "My Category",sector: "Finance",pGantt: g,
});

直接添加一个对象数据

参数 详情
pID 用于标识每一行的唯一数字ID(必填)
pName 任务标签名(必填)
pStart 开始时间(必填)
pEnd 结束时间(必填)
pClass 甘特图右侧的样式(如:ggroupblack,gtaskblue,gtaskred,gtaskgreen,gtaskyellow,gtaskpurple,gtaskpink等)
pLink http链接在工具提示中显示为“更多信息”链接(可选)
pMile 指出这是否是一个里程碑式的任务 - 数字:1 表示 里程碑任务,0 表示 不是里程碑任务(可选)
pComp 完成百分比,数字(必填)
pGroup 指示这是否是组任务(父) - 数字: 0=正常任务,1=标准组任务,2=组合任务(可选)
pParent 已存在的任务的pID,这表示此任务成为已识别任务的子任务。 数字顶级任务应将pParent设置为0(必填)
pOpen  指示在绘制图表时是否打开标准组任务。 必须为所有项目设置值,但只能由标准组任务使用。 数字,1 =展开开,0 =收起(必填)
pGantt javascript JSGantt.GanttChart对象从中进行设置。 默认为“g”用于向后兼容(必填)

因为这里要求是这个颜色   我在他样式css里没有找到   这里我直接修改的源码(新增一个样式或者是修改都可以  看需求  我这地方修改是因为对其他地方没有影响)

node_modules/jsgantt-improved/dist/jsgantt.css

.ggroupblack {height: 7px;background: #FBB52C;margin-top: 2px;
}
.mygreen {height: 13px;background: #1ABB80;opacity: 0.9;margin-top: 1px;border-radius: 10px;
}

根据需求去掉了三列   代码如下

g.setShowComp(0)
g.setShowDur(0)
g.setShowRes(0)

将英文转化为中文

g.addLang("zh", {format: "视图",hour: "时",day: "日",week: "周",month: "月",quarter: "季",hours: "小时",days: "天",weeks: "周",months: "月",quarters: "季度",hr: "小时",dy: "天",wk: "周",mth: "月",qtr: "季度",hrs: "小时",dys: "天",wks: "周",mths: "月",qtrs: "季度",resource: "资源",duration: "耗时",comp: "完成度",completion: "完成度",startdate: "开始日期",enddate: "结束日期",moreinfo: "更多信息",notes: "备注",january: "01",february: "02",march: "03",april: "04",maylong: "05",june: "06",july: "07",august: "08",september: "09",october: "10",november: "11",december: "12",jan: "1月",feb: "2月",mar: "3月",apr: "4月",may: "5月",jun: "6月",jul: "7月",aug: "8月",sep: "9月",oct: "10月",nov: "11月",dec: "12月",sunday: "星期日",monday: "星期一",tuesday: "星期二",wednesday: "星期三",thursday: "星期四",friday: "星期五",saturday: "星期六",sun: "星期日",mon: "星期一",tue: "星期二",wed: "星期三",thu: "星期四",fri: "星期五",sat: "星期六",});g.setLang("zh");

修改时间格式为yyyy-mm-dd

g.setDateTaskTableDisplayFormat('yyyy-mm-dd')

提示下还有一个时间  修改格式

g.setDateTaskDisplayFormat('yyyy-mm-dd')

检查一下  发现开始时间下面没有居中

一检查发现

直接设置样式

::v-deep .gstartdate{&>div{width: 100%;max-width: unset;}
}

最后则是绘制

g.Draw();

最终代码如下

<template><div class="trys"><div class="tried" id="trys"></div></div>
</template><script>
import * as JSGantt from "jsgantt-improved";
import "jsgantt-improved/dist/jsgantt.css"; // 引入样式文件
export default {data() {return {};},created() {},mounted() {let trys = document.getElementById("trys");let g = new JSGantt.GanttChart(trys, "day");g.setShowComp(0);g.setShowDur(0);g.setShowRes(0);g.addLang("zh", {format: "视图",hour: "时",day: "日",week: "周",month: "月",quarter: "季",hours: "小时",days: "天",weeks: "周",months: "月",quarters: "季度",hr: "小时",dy: "天",wk: "周",mth: "月",qtr: "季度",hrs: "小时",dys: "天",wks: "周",mths: "月",qtrs: "季度",resource: "资源",duration: "耗时",comp: "完成度",completion: "完成度",startdate: "开始日期",enddate: "结束日期",moreinfo: "更多信息",notes: "备注",january: "01",february: "02",march: "03",april: "04",maylong: "05",june: "06",july: "07",august: "08",september: "09",october: "10",november: "11",december: "12",jan: "1月",feb: "2月",mar: "3月",apr: "4月",may: "5月",jun: "6月",jul: "7月",aug: "8月",sep: "9月",oct: "10月",nov: "11月",dec: "12月",sunday: "星期日",monday: "星期一",tuesday: "星期二",wednesday: "星期三",thursday: "星期四",friday: "星期五",saturday: "星期六",sun: "星期日",mon: "星期一",tue: "星期二",wed: "星期三",thu: "星期四",fri: "星期五",sat: "星期六",});g.setLang("zh");g.setDateTaskDisplayFormat('yyyy-mm-dd')g.setDateTaskTableDisplayFormat('yyyy-mm-dd')g.AddTaskItemObject({pID: 1,pName: "模型计划",pStart: "2017-02-25",pEnd: "2017-03-17",pClass: "ggroupblack",pComp: 0,pGroup: 1,pParent: 0,pOpen: 1,pDepend: "",pCaption: "",pCost: 1000,pNotes: "备注",category: "My Category",pGantt: g,});g.AddTaskItemObject({pID: 2,pName: "直流场",pStart: "2017-02-25",pEnd: "2017-03-17",pClass: "mygreen",pComp: 0,pGroup: 1,pParent: 1,pOpen: 0,pDepend: "",pCaption: "",pCost: 1000,pNotes: "备注",category: "My Category",pGantt: g,});g.AddTaskItemObject({pID: 3,pName: "换流区和阀厅",pStart: "2017-02-25",pEnd: "2017-03-17",pClass: "mygreen",pComp: 0,pGroup: 1,pParent: 1,pOpen: 0,pDepend: "",pCaption: "",pCost: 1000,pNotes: "备注",category: "My Category",pGantt: g,});g.AddTaskItemObject({pID: 4,pName: "站前区",pStart: "2017-02-25",pEnd: "2017-03-17",pClass: "mygreen",pComp: 0,pGroup: 1,pParent: 1,pOpen: 0,pDepend: "",pCaption: "",pCost: 1000,pNotes: "备注",category: "My Category",pGantt: g,});g.AddTaskItemObject({pID: 5,pName: "交流滤波器场",pStart: "2017-02-25",pEnd: "2017-03-17",pClass: "mygreen",pComp: 0,pGroup: 1,pParent: 1,pOpen: 0,pDepend: "",pCaption: "",pCost: 1000,pNotes: "备注",category: "My Category",pGantt: g,});g.AddTaskItemObject({pID: 6,pName: "总图",pStart: "2017-02-25",pEnd: "2017-03-17",pClass: "mygreen",pComp: 0,pParent: 3,pOpen: 0,pDepend: "",pCaption: "",pCost: 1000,pNotes: "备注",category: "My Category",pGantt: g,});g.AddTaskItemObject({pID: 7,pName: "主地图",pStart: "2017-02-25",pEnd: "2017-03-17",pClass: "mygreen",pComp: 0,pParent: 4,pOpen: 0,pDepend: "",pCaption: "",pCost: 1000,pNotes: "备注",category: "My Category",pGantt: g,});g.AddTaskItemObject({pID: 8,pName: "图纸计划",pStart: "2017-02-25",pEnd: "2017-03-17",pClass: "ggroupblack",pComp: 0,pGroup: 1,pParent: 0,pOpen: 1,pDepend: "",pCaption: "",pCost: 1000,pNotes: "备注",category: "My Category",pGantt: g,});g.AddTaskItemObject({pID: 9,pName: "电器一次部分",pStart: "2017-02-25",pEnd: "2017-03-17",pClass: "mygreen",pComp: 0,pGroup: 1,pParent: 8,pOpen: 0,pDepend: "",pCaption: "",pCost: 1000,pNotes: "备注",category: "My Category",pGantt: g,});g.Draw();},watch: {},methods: {},
};
</script><style scoped lang="scss">
.trys {width: 100%;height: 100%;.tried {width: 100%;height: 100%;}::v-deep .gstartdate{&>div{width: 100%;max-width: unset;}}
}
</style>

结束!摸鱼ing!我向你敬礼呀!salute!

jsGannt Improved在vue中的使用相关推荐

  1. Vue中使用animate.css

    最近把公司官网项目依赖进行了升级,里面用到了animate.css.目前版本4.1.0. 目前4.x版本相比之前3.x的breaking change如下: Animate.css v4 brough ...

  2. 怎么将vue模板转换为html,vue中自定义html文件的模板

    如果默认生成的 HTML 文件不适合需求,可以创建/使用自定义模板. 一是通过 inject 选项,然后传递给定制的 HTML 文件.html-webpack-plugin 将会自动注入所有需要的 C ...

  3. props写法_简单理解vue中Props属性

    本文实例为大家解析了vue中Props的属性,供大家参考,具体内容如下 使用 Props 传递数据 组件实例的作用域是孤立的.这意味着不能并且不应该在子组件的模板内直接引用父组件的数据.可以使用 pr ...

  4. vue ts 设置tslint提示_Typescript 在 Vue 中的实践(包含2.x、3.x)

    1 使用 typescript 的优势 聊到 ts 时有一个不能规避的问题:为什么要使用 ts ,相比 js 有什么优势吗?下面我从两个方面试着回答一下这个问题: 1.1 项目开发时的便利 避免低级 ...

  5. VUE中使用Echarts绘制地图迁移

    踩坑说明 很久以前写jsp时使用过echarts的china.js插件,不过echarts是2.0的,目前vue项目中使用echarts3.8.5,直接将china.js插件引入,代码复制,运行一看, ...

  6. vue中动态样式不起作用? scoped了解一下

    vue中style标签使用属性scoped的注意事项 style上添加属性scoped可以实现样式私有化,但是在使用动态样式时,样式会不起作用.可以先去掉scoped 转载于:https://www. ...

  7. Vue中组件数据的传递

    Vue中组件的作用域是隔离的,父组件中的数值子组件看不到!也就是说,用angular作比喻,组件的scope天生是scope:()的! 如果父组件需要往子组件中传数据,此时应该使用标签属性: < ...

  8. vue中 静态文件引用注意事项

    (一)assets文件夹与static文件夹的区别 区别一:assets文件是src下的,所以最后运行时需要进行打包,而static文件不需要打包就直接放在最终的文件中了 区别二:assets中的文件 ...

  9. vue中axios如何实现token验证

    title: vue中axios如何实现token验证 date: 2018-02-08 17:50:07 tags: [axios,vue] 继上篇实现Auth认证之后,然后每个跳转页面都会在后端验 ...

  10. vue和react相同点_我在React和Vue中创建了相同的应用程序。 这是区别。

    vue和react相同点 by Sunil Sandhu 由Sunil Sandhu 我在React和Vue中创建了相同的应用程序. 这是区别. (I created the same app in ...

最新文章

  1. 分治:分治和动态规划的区别,二分检索递归和迭代方式实现
  2. Samba将Linux集成到Windows网络
  3. 计算机网络——链路层之信道
  4. Asp.net MVC使用Filter解除Session, Cookie等依赖
  5. Web前端Javascript笔记(6)正则表达式
  6. java异常代码_Java异常(示例代码)
  7. 命令行查看Memcached运行状态
  8. Apache Flink 1.9 版本即将发布,新版本有哪些新特性
  9. egret性能优化总结
  10. 数学模型——人口增长模型(基于python)
  11. Java多个PDF文件合并成一个PDF文件
  12. 前端必备的开发工具推荐——VScode代码编辑器
  13. windows10、windows11、windows-server官方下载安装
  14. FFmpeg音视频播放器系列(第三篇:seek实现播放进度控制)
  15. java使用jacob给word添加水印
  16. Unity摄像机拍照并显示在小窗口里(RenderTexture和RawImage将摄像机图像渲染到GUI屏幕上小图显示)
  17. Redis基础(二)—— 基本命令与数据类型
  18. eating的中文意思_Eating是什么意思中文
  19. 水滴公司更名为水滴科技集团,王慧文担任监事
  20. 滇西应用技术大学有没有计算机专业,科普滇西应用技术大学在哪以及滇西应用技术大学有哪些好专业...

热门文章

  1. C语言课程设计(服装管理系统详解)
  2. google map 谷歌地图 更改当前定位图标icon大头钉小蓝点
  3. 什么是缓存雪崩、击穿、穿透?
  4. 计算机网络---通过DNS服务器查询Web服务器的IP地址
  5. SA-LOAM:具有语义辅助的回环检测LOAM系统
  6. 想要做网页游戏怎么办 ?PixiJs 篇(四)
  7. 第39级台阶--递归
  8. 丝般顺滑!全新垃圾回收器 ZGC 初体验 | 龙蜥技术
  9. 盘点世界最牛的90后黑客,厉害到你无法想象的程度
  10. Window环境下 Jenkins Master/Slaver模式 + Svn 部署