Vue制作简单的甘特图控件(日、周、月、季、年显示模式),可全屏显示,拖动时间,排序,懒加载

前端时间公司要求制作一个甘特图的组件,本来想用现成的控件,但搜了下都是要money的,或者就是不太好的控件,后来想了下干脆就自己做好了.花了一个多星期的时间做了一个简单的甘特图控件.这个支持日、周、月、季、年的显示模式

新增了些功能

1.全屏模式显示

2.甘特图右侧图例的拖动时间

3.排序

4.懒加载

最近打算用vue3重构,优化体验

代码文件有点多我就不一一介绍了,要想下载代码GitHub点击这里哦,要是觉得好的话顺便给个star,谢谢支持!

使用方法

import gante from './components/gante_test/gante'
  Vue.use(gante)
  1.全局调用方法:
              this.$gante({
                container:'.gante',
                ganteData:data,
                start_time:new Date('2018/12/15').getTime(),
                end_time:new Date('2019/2/4').getTime(),
                open:true,
                height:400,
                time_mode:1,
                th_data:th_data,
                onEdit(data){
                	console.log(data)
                },
                onClick(data){
                	console.log(data)
                },
                onDragChangeTime(data,resolve){
                	resolve(false) // 取消刚才拖动的时间,如果不取消就不用执行
               	},
               	onLoad(resolve){
               		resolve(false,data,start_time,end_time)
               	}
              })
          其中
              container: 要加载到哪个元素下面(默认为body)
              ganteData: 要加在的数据(必须要设置)
              start_time: 最小的开始时间(必须要设置,时间戳格式)
              end_time: 最大的结束时间(必须要设置,时间戳格式)
            tabe_width: 表格的宽度(默认是甘特图的一半) 支持calc()写法或百分比写法,在没有具体宽度的情况下很有用
              open: 子任务是否打开的状态(默认为true)
              openLoad: true 是否开启懒加载模式
              height: 甘特图的高度(默认是300)支持calc()写法或百分比写法,在没有具体高度的情况下很有用
              time_mode: 显示的刻度(时间刻度 1:日,2周,3月,4季,5年,默认是1)
              th_data: 表格头部的属性值(必须要设置)
              onEdit: 编辑过了所触发的事件
              onClick: 点击了listen_click设为true的th所触发的事件(只有listen_click设为true才能触发)
              onDragChangeTime: 拖动改变时间的事件,(data,resolve) data:当前的数据 resolve回调执行的函数,这个函数有个参数(bol)为false时,取消刚才拖动的时间。
              onLoad(resolve): 懒加载  resolve回调函数  其中包含4个参数requestBol: 是否还可以请求 data: 加载的数据  start_time: 最小开始时间  end_time: 最大的结束时间
    2.th_data示例{
              title:{value:'任务名称',width:80,showToast:false,listen_click:true},
              startTime:{value:'开始时间',width:150,showToast:true,chooseTime:true,time_mode:1,sort_type:'asc'},
              endTime:{value:'结束时间',width:150,showToast:true,chooseTime:true,time_mode:2},
              biaoti:{value:'内容',width:450,shrink:true,showToast:true,edit:true}
             }
          其中
              value:th的名称,
              width:th的宽度(默认是80), 不支持calc()写法或百分比写法
              showToast:鼠标悬浮到右侧图例上时显示的toast里是否显示该属性值,
              time_mode:1(是开始时间),2(结束时间)*注:(必须要有开始时间和结束时间标示)
              edit: 该内容是否可编辑,
              chooseTime: 是否启动选择时间控件 ,
              shrink: 该项显示收缩的图例(只用设置其中某一项)
              listen_click: 是否监听点击事件
              sort_type: 排序 desc: 倒序 asc:正序(只能放在没有懒加载的模式中)
             th_data里的属性必须要和ganteData里params里的属性相对应,属性名要一样
   3.ganteData示例[
              {
                gunter_id:1,
                params:{title:'项目制作任务',startTime:'2018-12-19',endTime:'2019-1-3',biaoti:'这是任务标题内容'},
                start_time:new Date(2018,11,19).getTime(),
                end_time:new Date(2019,0,3).getTime(),
                level:1,
                children:[
                  {
                    gunter_id:2,
                    params:{title:'子任务',startTime:'2018-12-17',endTime:'2019-1-1',biaoti:'这是第一级子任务内容'},
                    start_time:new Date(2018,11,17).getTime(),
                    end_time:new Date(2019,0,1).getTime(),
                    bg_color:'yellow',
                    level:2
                  }
                ]
              }
              gunter_id: 每个任务的标示id(不能有重复的id,可以是字符串和数字)
              params: 表格要显示的内容,其中属性名要和th_data一致
              start_time: 该任务的开始时间(必须要设置,时间戳格式)
              end_time: 该任务的结束时间(必须要设置,时间戳格式)
              bg_color: 图例的颜色(默认为#00b0ff)
              level: 任务的层级(1代表第一层,2代表第二层)
              children: 子任务数据

贴上图例

左右拖动时间端

全屏模式

排序

还可以切换到今天显示

博主制作不易,转载是请标明出处

  • 18
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 44
    评论
基于Vue的开源甘特图控件是一种用于展示任务安排和进度计划的工具。它能够以图表形式将任务在时间轴上进行可视化展示,并显示每个任务的开始时间、结束时间和进度。开源甘特图控件具有以下特点: 1. 灵活性:基于Vue的开源甘特图控件可以根据不同的需求进行自定义配置。用户可以根据自己的项目需求定义不同的任务、任务间的依赖关系和持续时间等。 2. 可扩展性:该开源控件提供了丰富的API,允许开发者根据自己的需求进行扩展和添加新的功能。可以自定义样式、事件和交互行为等,以适应不同的应用场景。 3. 数据驱动:基于Vue的开源甘特图控件采用数据驱动的方式,通过数据绑定实现图表的更新。开发者可以通过动态更新数据,实时展示任务的变化和进度的更新。 4. 跨平台兼容性:该控件可以在主流的浏览器中运行,并且支持不同的操作系统和设备。无论是在桌面端还是移动端,都能够流畅地展示和操作甘特图。 5. 社区支持:作为一个开源项目,基于Vue的开源甘特图控件有庞大的用户社区支持。用户可以通过社区获取到其他开发者的经验和反馈,解决问题和提升自己的开发技能。 总之,基于Vue的开源甘特图控件是一种功能强大、灵活性高、可扩展性好的工具,可以帮助开发者高效地管理和展示任务计划和进度。无论是个人项目还是团队项目,都能够通过该控件来提升工作效率和可视化管理。
评论 44
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值