jQuery甘特图日程图横道图插件(原创)

所属分类:UI-图表

 31279  299  查看评论 (17)
分享到微信朋友圈
X
jQuery甘特图日程图横道图插件(原创) ie兼容12

GanttView

基于JQ的一款灵活高效,支持自定义拓展的甘特图/日程图插件

支持月/周/小时等显示方式 支持拖动改变时间 展开与收起 添加/删除,刷新 节假日高亮 clicked,dblClicked,changed事件 ...

使用方法

CSS样式文件

<link rel="stylesheet" type="text/css" media="screen" href="jquery.ganttView.css" />
<link rel="stylesheet" type="text/css" media="screen" href="lib/flick/jquery-ui-1.8.2.custom.css" />

JS脚本文件文件

<script src="https://www.jq22.com/jquery/jquery-1.7.1.js"></script>
<script type="text/javascript" src="lib/jquery-ui-1.8.2.custom.min.js"></script>
<script type="text/javascript" src="lib/gantt-date.js"></script>
<script type="text/javascript" src="lib/holidays.js"></script>
<script type="text/javascript" src="jquery.ganttView.js"></script>

页面布局

<div id="ganttChart"></div>

组件配置

$("#ganttChart").ganttView({
    ganttScale: "hours", // months  weeks days  hours
    showWeekends: true, //是否现在周末高亮 (现在 改成 显示)
    showLine: true, //是否显示 当前时间线(为"周"时显示背景颜色)
    data: ganttData2, //数据来源
    vtHeaderWidth: 300, //左侧任务模块宽度
    cellWidth: 50, //格子宽度(ganttScale = hours/weeks:宽度重新计算 最小为50)
    cellHeight: 40, //格子行高
    titileHeight: 40, //标题行高
    start: new Date(2019, 06, 14), //范围最小时间(请根据 ganttScale 参数调节初始时间范围)
    end: new Date(2019, 06, 20), //范围最大时间
    slideWidth: '100%', //甘特图宽度
    excludeWeekends: true, //排除星期的最后一天
    showDayOfWeek: true, //是否显示星期
    showHolidays: false, //显示节假日
    excludeHolidays: false, //排除节假日
    gridHoverL: true, //是否显示鼠标移入效果(列)
    gridHoverH: true, //是否显示鼠标移入效果(行)
    isUnfold: true, //模块下任务超过2条 显示展开收起按钮
    unfoldConfig: false, //初始化展开/收起(模块下任务超过2条 显示展开收起按钮) true:收起
    clicked: function(o) {
        selectedObj = o;
        var data = selectedObj.data('block-data');
        var itemName = data.itemName ? data.itemName : "";
        var seriesName = data.seriesName ? data.seriesName : "";
        var text = data.text ? data.text : "";
        var sYYYY = data.start.getYear();
        sYYYY = sYYYY < 1000 ? sYYYY + 1900 : sYYYY;
        var sMM = data.start.getMonth() + 1;
        var sDD = data.start.getDate();
        var eYYYY = data.end.getYear();
        eYYYY = eYYYY < 1000 ? eYYYY + 1900 : eYYYY;
        var eMM = data.end.getMonth() + 1;
        var eDD = data.end.getDate();
        $('#ganttData-item-id').val(data.itemId);
        $('#ganttData-item-name').val(itemName);
        $('#ganttData-series-id').val(data.seriesId);
        $('#ganttData-series-name').val(seriesName);
        $('#ganttData-series-start').val(sYYYY + "/" + sMM + "/" + sDD);
        $('#ganttData-series-end').val(eYYYY + "/" + eMM + "/" + eDD);
        $('#ganttData-series-text').val(text);
        console.log(`${data.itemId} ${itemName} ${data.seriesId} ${seriesName} ${sYYYY + "/" + sMM + "/" + sDD} ${eYYYY + "/" + eMM + "/" + eDD}`)
    },

    dblClicked: function(o) {
        if (selectedObj == null) {
            return;
        }
        if (selectedObj.data('block-data').seriesId == o.data('block-data').seriesId) {
            $('#ganttData-reset').trigger("click");
        }
    },
    changed: function(o) {
        o.trigger("click");
    }
});

注意事项

* 支持月,周,小时

* 选择月时,注意调整start/end时间(时间月份默认从0开始)

* 选择周/小时,插件自动忽略年份与月份

* 插件支持模块下任务超过2条数据自动显示展开/收起按钮

* 插件支持节假日Holidays表格高亮,excludeHolidays:true

* cellWidth表格宽度(ganttScale = hours/weeks:宽度重新计算 最小为50) 避免未撑满整个屏幕

* showLine是否显示当前时间节点(小时为线条展示,周/月为表格高亮)

* 关于版本问题(jquery-ui-1.8.2/jquery-1.4.2)JQ版本可为高版本,JQ-ui版本暂不支持高版本

* 图表上所有样式可自定义或取消

相关插件-图表

基于echarts双y轴折线图实时更新

双y轴折线图阴影图渐变效果混合实时更新
  图表
 46331  350

支持ie8的圆形统计比例图

动态统计,支持ie8以及以上版本的ie浏览器,其他的浏览器
  图表
 53377  421

Web动态热图插件heatmap.js

Web动态热图插件heatmap.js,可用于监控设备运行状态。
  图表
 29033  278

jQuery移动端固定表格表头和任意表列(原创)

jQuery固定表格表头和任意表列,只适用于移动端
  图表
 23018  217

讨论这个项目(17)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

    Ocean 0
    2023/11/7 16:57:15
    如何动态更新data呢,就是我在其他地方有个按钮,点击要更新一下整个视图 回复
    ?? ??? ?? 0
    2022/6/30 16:16:17
    这个 展开收起样式会错乱
    回复
    w. 0
    2022/1/19 13:58:35
    我想基于您的甘特图做一些小改动 回复
    w. 0
    2022/1/19 13:58:20
    可否留个邮箱或QQ号,方便技术沟通? 回复
      0
    2020/10/15 11:28:12
    有没有支持跨年的版本,现在start,end设置跨年月份全在一起了。
               0
        2021/4/13 22:26:19
        跨年的:https://gitee.com/heanny/gantt-view
        基于作者修改的,跨年正常排序,关闭了days,hours,weeks,只保留了months
        展示效果:https://heanny.gitee.io/gantt-view/
    回复
    王亚兰 0
    2020/3/2 17:07:03
    进度条可以写在一行吗 回复
    刘冬雪 0
    2019/9/25 10:54:53
    可否留个邮箱或QQ号,方便技术沟通?
    我想基于您的甘特图做一些小改动
        WalkerHJ0
        2019/9/28 16:19:39
        可以改动
    回复
    麦哲伦 0
    2019/8/21 13:53:54
    请问为什么下面的按钮能读出日期时间但是没用小时和分钟呢 回复
    未来(☆_☆) 0
    2019/8/19 18:37:09
    ganttScale: "days" 不管用
        WalkerHJ1
        2019/9/28 16:20:27
        days??hours是一样的 天就是24小时组成
    回复
    WalkerHJ 0
    2019/8/13 11:33:24
    注意:时间格式为月的时候,必须修改start和end参数为自己的日期。默认是周的参数。所以显示不出来。所以请大家自己修改。 回复
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
取消回复