zoukankan      html  css  js  c++  java
  • 【转载】 JQuery.Gantt(甘特图) 开发指南

    转载来自: http://www.cnblogs.com/liusuqi/archive/2013/06/09/3129293.html

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

    <link rel="stylesheet" href="css/style.css" />
    <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> 
     在需要显示甘特图的地方加入以下这个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 一个直接应用于甘特项的数据对象
     
     
     
     
     
    • 代码说明
      • 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 () {};);
     
     
     
     
     
  • 相关阅读:
    win10使用Scoop软件包管理器,支持版本切换
    使用ddns-go实现本地IP或公网IP动态域名解析
    使用Frp实现内网穿透
    Win10开发环境搭建
    Java使用Jabba进行版本管理
    Win10将用户目录Users迁移到其他盘
    【测试开发】十五、接口测试-接口定义-实现接口编辑功能
    【测试开发】十四、接口测试-接口定义功能-前后端-实现新增
    【测试开发】十三、接口测试-接口定义功能-前端-实现动态增删表单
    【测试开发】十二、接口测试-实现接口列表功能-递归查询子节点下的接口
  • 原文地址:https://www.cnblogs.com/dcb3688/p/3160464.html
Copyright © 2011-2022 走看看