说明

日前需要用到甘特图,以下转载内容源自网络。


• 概述

1.JQuery.Gantt是一个开源的基于JQuery库的用于实现甘特图效果的可扩展功能的JS组件库。

•前端页面

o 资源引用

首先我们需要将下载到的源码中的CSS、IMG、JS等资源放入我们自己的项目中,然后在我们自己的页面中引用需要的资源文件。

CSS样式文件:

<link rel="stylesheet" href="css/style.css" />

JS脚本文件:

<script src="js/jquery-1.7.min.js"></script>
<script src="js/jquery.fn.gantt.js" charset ="GB2312"></script>
<script src="js/jquery.cookie.js"></script>

注:如果需要甘特图中显示中文,则需要在js文件引用中加上charset特性并设置为GB2312,否则中文内容将显示为乱码。

页面布局:

在需要显示甘特图的地方加入以下这个div。

<div class="gantt"></div>
•组件配置

Gantt 配置:

$(".selector").gantt({
source:"ajax/data.json",
scale:"weeks",
minScale:"weeks",
maxScale:"months",
onItemClick:function(data){
alert("Item clicked - show some details");},
onAddClick:function(dt, rowId){
alert("Empty space clicked - add an item!");},
onRender:function(){
console.log("chart rendered");}});

| 参数 | 默认值 | 接收类型 | 解释 |

| :-------- | -------- :--: |

| source | null | Array, String (url) |

| itemsPerPage | 7 | Number |

| months | ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] | Array |

| dow | ["S", "M", "T", "W", "T", "F", "S"] | Array |

| navigate | "buttons" | String ("buttons","scroll") |

| scale | "days" | String |

| maxScale | "months" | String |

| minScale | "hours" | String |

| waitText | "Please Wait..." | String |

| onItemClick: | function (data) { return; } | 有数据范围内的点击事件 |

| onAddClick | function (dt, rowId) { return; } | 无数据范围内的点击事件 |

| onRender | function () { return; } | 渲染事件 |

| useCookie | FALSE | 如果需要使用cookie则需要引用JS脚本文件:jquery.cookie.js? |

| scrollToToday | TRUE | Boolean |

Source 配置:

source:[{
name:"Example",
desc:"Lorem ipsum dolor sit amet.",
values:[...]}]

| 参数 | 默认值 | 接收类型 | 解释 |

| :-------- | -------- :--: |

|name |null |String |每一行最左侧的一列以粗体显示|

|desc |null |String |每一行左侧第二列 |

|values |null |Array |甘特图日期范围项 |

Value 配置:

values:[{
to:"/Date(1328832000000)/",from:"/Date(1333411200000)/",
desc:"Something",
label:"Example Value",
customClass:"ganttRed",
dataObj: foo.bar[i]}]
参数 接收类型 解释
to String (Date) 结束时间,以毫秒为换算单位
from String (Date) 开始时间,以毫秒为换算单位
desc String 鼠标悬停显示文本
label String 甘特项显示文本
customClass String 甘特项的自定义class
dataObj All 一个直接应用于甘特项的数据对象

.NET平台实现时间转换:

public class GanttManager
{
public static readonly DateTime StartTime = TimeZone .CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)).Date; public static List< GanttItem> DataToGanttList()
{
List<GanttItem > ls = new List<GanttItem >(); GanttItem item = new GanttItem();
item.name = "a";
item.desc = "b";
item.values.id = "1";
item.values.label = "c";
item.values.from = ToMillisecondDate( new DateTime (2011, 11, 2));
item.values.to = ToMillisecondDate( new DateTime (2011, 11, 3)); ls.Add(item);
ls.Add(item); return ls;
} public static string ToMillisecondDate( DateTime dt)
{
return "/Date(" + ((dt.Date - StartTime.Date).TotalSeconds * 1000).ToString() + ")/";
}
}
•代码说明:

jquery.cookie.js:

用于cookie管理,如果需要在甘特图中使用cookie则需要在页面中引用该js文件,否则不需要引用。

jquery.fn.gantt.js:

JQuery.Gantt组件的核心脚本文件,所有的甘特图功能代码都在这个文件中。

代码结构解析:

$.fn.gantt = function (options):甘特图部件对象

基础属性:

cookieKey:cookie的键

scales:时间范围的级别

settings:部件设置集

source:数据源

itemsPerPage:分页的每页数据行数

months:列头处月份名称

dow:列头处星期名称

startPos:默认开始位置日期

navigate:底部导航,buttons为按钮式的,scroll为滑块式的

scale:甘特图每一列的时间范围

useCookie:是否使用cookie,如果使用需要引用jquery.cookie.js

maxScale:最大时间范围

minScale:最小时间范围

waitText:等待提示文本

onItemClick:有数据范围内点击事件

onAddClick:无数据范围内点击事件

onRender:渲染事件

scrollToToday:设置是否滚动到今天

自定义选择器方法(a:元素,i:索引,m:值): $.extend($.expr[":"], {});

findday:以毫秒为时间单位匹配一个指定的日期

findweek:以毫秒为时间单位匹配一个指定的周

findmonth:以毫秒为时间单位匹配一个指定的月

日期对象扩展方法:

Date.prototype.getWeekId:获取weekid用于标识week的div的id特性,返回字符串,格式为dh-YYYY-WW,其中的ww是一年中的第几周

Date.prototype.genRepDate:按部件设置属性中scale的值获取时间范围,以秒为时间单位

Date.prototype.getDayOfYear:获取日期在一年中的第几天

Date.prototype.getWeekOfYear:获取日期在一年中的第几周

Date.prototype.getDaysInMonth:获取日期所在月份的天数

Date.prototype.hasWeek:如果日期驻留在一周的边界,返回真

Date.prototype.getDayForWeek:返回一周的开始日期的日期对象

Grid管理器(负责导航和渲染):core

elementFromPoint:获取位于指定点的最高处的元素

create:创建图表

init:初始化视图,计算行数、页数、可见的开始时间与结束时间

render:渲染grid

leftPanel:创建左侧Panel

dataPanel:创建右侧数据Panel

rightPanel:创建右侧头部Panel

navigation:导航

createProgressBar:创建进度条

markNow:移除”wd“class添加”today“class到当前的scale模式

fillData:填充图表,解析数据并填充到panel

navigateTo:导航到

navigatePage:导航到指定的页面

zoomInOut:变更空间轴级次(zoom)

mouseScroll:通过鼠标移动图表

wheelScroll:通过鼠标滚轮移动图表

sliderScroll:通过滑块控制图表

scrollPanel:更新滚动panel的margin

synchronizeScroller:同步滚动

repositionLabel:重新定位数据标签

waitToggle:切换等待

实用工具类功能:tools

getMaxDate:返回最大可能的日期在scale值的标准下

getMinDate:返回最小可能的日期在scale值的标准下

parseDateRange:返回一个日期对象数组介于from和to之间,时间单位为天

parseTimeRange:返回一个日期对象数组介于from和to之间,时间单位为小时

parseWeeksRange:返回一个日期对象数组介于from和to,时间单位为周

parseMonthsRange:返回一个日期对象数组介于from和to,时间单位为月

dateDeserialize:从字符串反序列化成日期

genId:用日期创建ID

getCellSize:获取当前单元格的大小

getRightPanelSize:获取当前右panel的大小

getPageHeight:获取当前页面的高度

getProgressBarMargin:获取当前进度条的margin大小

甘特图组件对象遍历器(负责执行初始化操作):this.each(function () {};

JQuery.Gantt开发指南(转)的更多相关文章

  1. jQuery MiniUI 开发指南+API组件参考手册

    jQuery MiniUI 开发指南 本文档将逐步的讲解jQuery MiniUI的方方面面,从此您将踏上jQuery MiniUI的深入探索之旅.                 1.Hello M ...

  2. 《jQuery UI开发指南》勘误收集

    此书由罗晴明 (http://weibo.com/sunnylqm)和我合译完成,此篇博客作为勘误收集而用,若译文有误或者有任何疑问,欢迎留下评论,或者给我发邮件(地址:gzooler@gmail.c ...

  3. 【转载】 JQuery.Gantt(甘特图) 开发指南

    转载来自: http://www.cnblogs.com/liusuqi/archive/2013/06/09/3129293.html JQuery.Gantt是一个开源的基于JQuery库的用于实 ...

  4. Web界面开发必看!Kendo UI for jQuery编辑功能指南第一弹

    Kendo UI for jQuery最新试用版下载 Kendo UI目前最新提供Kendo UI for jQuery.Kendo UI for Angular.Kendo UI Support f ...

  5. jquery 甘特图开发指南

    JQuery.Gantt是一个开源的基于JQuery库的用于实现甘特图效果的可扩展功能的JS组件库. <link rel="stylesheet" href="cs ...

  6. JQuery.Gantt(甘特图)开发

    一.简介 JQuery.Gantt是一个开源的基于JQuery库的用于实现甘特图效果的可扩展功能的JS组件库. 二.前端页面 2.1 资源引用 首先需要将下载到的源码中的CSS.IMG.JS等资源放入 ...

  7. AngularJS开发指南16:AngularJS构建大型Web应用详解

    AngularJS是由Google创建的一种JS框架,使用它可以扩展应用程序中的HTML功能,从而在web应用程序中使用HTML声明动态内容.在该团队工作的软件工程师Brian Ford近日撰写了一篇 ...

  8. jQuery性能优化指南(转载)

    现在jquery应用的越来越多, 有些同学在享受爽快淋漓coding时就将性能问题忽略了, 比如我. jquery虽在诸多的js类库中性能表现还算优秀, 但毕竟不是在用原生的javascript开发, ...

  9. Knockout应用开发指南(完整版) 目录索引

    http://learn.knockoutjs.com/  所有示例和代码都在在上面直接运行预览 注意:因为它用了google的cdn加速,所要要用代_理+_翻_墙才能正常加载 使用Knockout有 ...

随机推荐

  1. Leedcode算法专题训练(分治法)

    归并排序就是一个用分治法的经典例子,这里我用它来举例描述一下上面的步骤: 1.归并排序首先把原问题拆分成2个规模更小的子问题. 2.递归地求解子问题,当子问题规模足够小时,可以一下子解决它.在这个例子 ...

  2. SpringBoot-容器启动的时候执行一些内容

    SpringBoot的ApplicationRunner.CommandLineRunner 场景: 在开发中可能会有这样的情景.需要在容器启动的时候执行一些内容.比如读取配置文件,数据库连接之类的. ...

  3. PostGIS管网连通性分析

    GIS在管网数据中的很重要的一个应用方向就是"管网空间分析",其中包括连通性分析.上下游分析.爆管分析等等.下面是我使用postgis来实现该"管网连通性分析" ...

  4. 记一次xss漏洞挖掘

    博客园在整改中,无法更新文章,难受啊... 记录一次react的xss漏洞发现,比较有意思: 某个站: 直接输入<xxx>,直接把我跳转到了404,猜测可能做了一些验证: 尝试多重编码,发 ...

  5. dedecms发布文章排序按发布时间,不是更新时间

    织梦DEDECMS5.7这个版本存在一个问题,修改文章的同时也修改了文章的发布时间,这种情况下,如果我们调用最新文章时使用按"发布日期排序",就会打乱原来我们网站上的文章的顺序. ...

  6. OWASP-ZAP扫描器的使用

    目录 OWASP-ZAP 更新 代理 目录扫描 主动扫描(Active  Scan) 扫描结果 生成报告 OWASP-ZAP OWASP Zed攻击代理(ZAP)是世界上最受欢迎的免费安全审计工具之一 ...

  7. POJ2669不错的最大流 竞赛问题(枚举King的个数)

    题意:       有n个人,任意两个人都比一次赛(一共比了n*(n-1)/2场),赢一场得到一分,最后的时候如果得分最高,或者是自己打败了所有比自己得分都高的人就算是King,给你每个人的最后得分, ...

  8. springboot添加操作

    更多精彩关注微信公众号 Mybaits技术连接数据库 resources #update tomcat port server.port=8888 #config datasource(mysql) ...

  9. windows桌面图标及任务管理栏丢失

    背景环境: 卸载某些软件,如Auto CAD 2011 之后,会出现桌面图标和任务栏丢失的现象,某些重要文件没有保存或者不能注销及重启的动作 1:按组合键Ctrl+Shift+Esc,键调出任务管理器 ...

  10. 痞子衡嵌入式:可通过USB Device Path来唯一指定i.MXRT设备进行ROM/Flashloader通信

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是通过USB Device Path来唯一指定i.MXRT设备进行ROM/Flashloader通信. i.MXRT系列高性能微控制器从2 ...