0.1.4 • Published 6 days ago

@ibiz-template-plugin/gantt v0.1.4

Weekly downloads
-
License
MIT
Repository
-
Last release
6 days ago

甘特图

甘特图基础组件,主要是在XGantt组件上进行功能扩展

页面展示

image.png

新增输入

名称说明
children指定数据的子集属性,默认为【children】
leaf指定数据的叶子节点属性,默认为【leaf】
allowDrag判断节点能否被拖拽 如果返回 false ,节点不能被拖动 Function(node)
allowDrop拖拽时判定目标节点能否成为拖动目标位置。 如果返回 false ,拖动节点不能被拖放到目标节点。 type 参数有三种情况:'prev'、'inner' 和 'next',分别表示放置在目标节点前、插入至目标节点和放置在目标节点后 Function(draggingNode, dropNode, type)
showViewToolbar是否显示视图工具栏,默认为【true】
dateRange指定甘特图头显示的时间范围

dateRange数据格式

{
  start: string | Date;
  end: string | Date;
}

新增输出

名称说明
node-drop拖拽成功完成时触发的事件,共三个参数,依次为:被拖拽节点对应的 Node、结束拖拽时最后进入的节点、被拖拽节点的放置位置(before、after、inner)

插槽

插槽名说明类型
ganttCell自定义甘特图单元格内容{ row: any, column: any }
empty当数据为空时自定义的内容

扩展功能

  1. 甘特视图区提供工具操作栏组件ViewToolbar(跳转至今日,甘特视图切换,全屏功能)

  2. 提供empty插槽,在无数据时会在右侧表格区绘制empty插槽内容

  3. 原拖拽功能为交换,现改为拖拽(在AllData中新增draggable方法,原交换方法的BUG已修改)

拖拽逻辑

draggable为true时启用拖拽:

  1. 默认情况下,仅允许拖拽同父内容的顺序。如果需要任意层级的拖拽时,可以传递一个对象,将参数配置为:{ level: 'all' } 即可

  2. 拖拽时可拖入目标之前,里面,之后;具体判断是根据鼠标悬浮的位置判断:前(0 - 0.2),中(0.2-0.8),后(0.8-0)。在同级父拖拽时,不能拖入项里面

  3. 拖拽实际上改变甘特图中维护的原始数据集合【originData】,当原始数据发生改变时,会重新计算界面数据【data】和【flatData】,从而改变界面绘制

  4. 拖拽时可通过【allowDrag】和【allowDrop】控制哪些节点可拖放

参考

项目:GANTT

文档:XGantt