• kendo UI -gantt 甘特图


    背景:公司最近开发得碧海项目,有个工程管理模块,希望能够看到项目进展,用于管理进度。开发这个功能有很多方法,比如第三方工具,百科上有介绍。本项目是一个web项目,希望在线编辑。首先看了jquery ui的,但功能不够强大。况且公司已购买kendo ui,因此便使用了该框架。由于没有中文api,网上使用者也太少,因此相关文献少之又少。但是官方英文版还是挺详尽的。

    官方api:https://docs.telerik.com/kendo-ui/api/javascript/ui/splitter  各种详尽参数配置,并提供编辑功能,即可展示效果

    官方demo:https://demos.telerik.com/kendo-ui/gantt/index  提供一个详尽功能例子。可以在线编辑即可查看更改情况

    这里只提供本项目实际使用的参数说明:

    1,dataSource :提供任务数据,即数据源,可以写死,也可以是一个jsonp的数据类型。两种类型都可以在文档中看到区别。read:即请求数据接口。通过请求的数据可以不用和官方回传的字段一致,即 字段名首字母无须大写,根据普通的java字段命名规则即可,否则页面会取不到回传数据,如:ID 回传直接写id 就可以。update,即甘特图中所有的更新数据操作接口。destory:销毁、删除数据的接口。create:创建一个数据的接口。通过这些接口可以完成对任务数据的操作。如果页面提供数据源,可以使用 文档中 事件中 add/edit/remove绑定相关事件

    2,dependencies:提供了任务数据的依赖关系,即任务流向。该数据可以页面写死,也可以请求jsonp接口,字段按照java命名规则即可。也提供了编辑接口,和任务数据源原理一样

    3,views:提供了视图展示类型,selected值设定用于初始化类型。可以是年、月、周、日、天。可以自己拓展,官方提供了月周日得。这边拓展了年,还可以添加,扩展如下:

    views: [
    {
    type: "day",
    dayHeaderTemplate: "#=dataformate(start,4)#",
    timeHeaderTemplate: "#=dataformate(start,3)#"
    },
    { type: "week",
    weekHeaderTemplate: "#=dataformate(start,4)#~#=dataformate(kendo.date.addDays(end, -1),4)#",
    dayHeaderTemplate: "#=dataformate(start,2)#"
    },
    {
    type: "month",
    monthHeaderTemplate: "#=dataformate(start,5)#",
    weekHeaderTemplate:"#=dataformate(start,2)#~#=dataformate(kendo.date.addDays(end, -1),2)#",
    selected: true
    },
    {
    type: "year",
    monthHeaderTemplate: "#=dataformate(start,1)#",
    yearHeaderTemplate:"#=dataformate(start,0)#"
    }
    ]
    方法:时间得格式组装
    function dataformate(a,k) {
    var timeArry=[];
    _dates = new Date(a);
    Seconds= _dates.getSeconds();
    Minutes=_dates.getMinutes()
    hours=_dates.getHours();
    day= _dates.getDate();
    month=_dates.getMonth() + 1;
    year= _dates.getFullYear();
    //年0
    datatime=year+'年';
    timeArry.push(datatime);
    //月1
    datatime=month+'月';
    timeArry.push(datatime);
    //日2
    datatime=day+'日';
    timeArry.push(datatime);
    //时3
    datatime=hours+'时';
    timeArry.push(datatime);
    //年月日4
    datatime=year+'年'+month+'月'+day+'日';
    timeArry.push(datatime);
    //月日5
    datatime=year+'年'+month+'月';
    timeArry.push(datatime);
    //年月日时分秒6
    datatime=year+'-'+month+'-'+day+' '+hours+':'+Minutes+':'+Seconds;
    timeArry.push(datatime);
    return timeArry[k];
    }

    4,tooltip:用于设定鼠标悬浮任务数据提示信息,可以更改展示日期的格式,如:

      tooltip: {

        visible: true,
    template: function (data) {
    data=data.task;
    return '<div class="k-task-details"><strong>'+data.title+'</strong><div class="k-task-pct">'+data.percentComplete+'</div><ul class="k-reset"><li>开始时间:'+dataformate(data.start,6)+'</li><li>结束时间:'+dataformate(data.end,6)+'</li></ul></div>'
    }
    }


    5,toolbar:用于更改页面操作编辑功能

    6,messages:用于更改页面展示文字内容,可用于提示中文

    7,editable:用于设置页面功能的操作状态,可精确到细节功能是否只读。其中template可以直接覆盖原始页面内容,自定义自己的编辑页面,如:
    参数设置:调用“edit”kendo模板,更新只读
    editable: {
    template: $("#editor").html(),
    update:false
    }

    kendo模板:
    <script id="editor" type="text/x-kendo-template">
    <h3>Edit meeting</h3>
    <p>
    <label>Title: <input name="title" /></label>
    </p>
    <p>
    <label>dddddddddddddd: <input data-role="datetimepicker" name="start" /></label>
    </p>
    <p>
    <label>End: <input data-role="datetimepicker" name="end" /></label>
    </p>
    </script>




    本项目只用到这么多参数,其他的参数功能api文档有详尽解释,可结合例子自定义自己的内容
  • 相关阅读:
    [USACO Mar08] 牛跑步 --k短路
    [ZJOI2008]树的统计Count
    [SDOI2010]魔法猪学院 --k短路
    POJ 2449 Remmarguts' Date -K短路
    [SCOI2007]kshort--k短路
    [HAOI2015]树上操作 -树链剖分
    HDU Aragorn's Story -树链剖分
    [USACO09JAN]安全出行Safe Travel
    2019全球区块链杭州高峰论坛将于5月17日举办!
    2019亚洲物联网安全创新国际峰会将于5月在上海开幕!
  • 原文地址:https://www.cnblogs.com/it-xiaoJiang/p/8421265.html
Copyright © 2020-2023  润新知