1.0.2 • Published 1 year ago

gantt-vxe-table v1.0.2

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

gantt-vxe-table

介绍

基于 vxe-table 实现的甘特图

  1. 使用例子 1 p9rDJYD.png
  2. 使用例子 2 p9rDYfe.png
  3. 使用例子 3 p9rDGFO.png

安装

npm i gantt-vxe-table

支持功能

  1. 根据数据计算开始时间、结束时间
  2. 任务小于 2 天,内容展示模块后面,大于 2 天,展示模块内部
  3. 悬浮框
  4. 列宽自适应,可设置最小宽度
  5. 显/隐藏列表
  6. 父级背景设置
    • 父级连续覆盖子任务周期
    • 父级不连续,同步子任务周期
    • 父级不显示覆盖
  7. 当天红线标识
    • 红线标识当天
    • 不标识当天
  8. 点击行数据,定位到图形开始时间列
  9. 红线当天显示在可视区域

使用

  1. 全局注册
import Vue from 'vue'

import GanttVxeTable from 'gantt-vxe-table'
import 'gantt-vxe-table/hds.css'

Vue.use(GanttVxeTable)
...
  1. 页面内基本使用
...
<GanttVxeTable
  ref="gantt"
  :loading="loading"
  :columns="columns"
  :height="500"
  show-today
  tooltip
  :day-column-width="150"
>
</GanttVxeTable>

<script>
export default {
    methods: {
        getList () {
            --ajax请求--.then(res => {
                ...
                // 甘特图组件加载数据的方法
                this.$refs.gantt.reloadData(res)

                ...
            })
        }
    }
}
</script>
...

组件属性

属性说明类型默认值例子
columns左侧显示的固定列,表格列的配置描述,具体项见 Column 属性array[]
loading加载中状态booleanfalse
rowId列表数据主键 idstring'id'
parentId列表数据父级 idstring'parentId'
height甘特图高度number500
dayColumnWidth时间列宽度number60
locale国际化语言配置string'zh-CN'
showToday显示今天booleanfalse
holidays节假日配置,默认周六、周日是休息日object休息日:1; 法定节假日:2; { '2023-04-01': '1', '2023-04-02': '1', '2023-04-05': '2', '2023-04-08': '1', '2023-04-09': '1', '2023-04-15': '1', '2023-04-16': '1', '2023-04-22': '1', '2023-04-29': '2', '2023-04-30': '2' }
syncSubTaskBar父级同步子级图形,目前只处理两级booleanfalse
tooltip图形是否显示悬浮框booleanfalse
expandAll是否展开所有子孙树节点booleanfalse

Column 属性

属性说明类型默认值参数
title列头显示文字string
key对应列表对象里的属性string
width列宽string
treeNode指定为树节点false
slotTitle列头显示内容自定义插槽string
scopedSlot行显示内容自定义插槽stringrow,返回这一行的对象

Slots 插槽

属性说明类型默认值参数
taskBarContent图形上内容插槽string{ ...row, taskBarWidth(图形宽度),taskBarDayNum(图形天数) }
tooltipContent图形悬浮内容插槽,tooltip 设置为 true 下生效stringrow

Events 事件

属性说明参数默认值例子
hideColumn隐藏左侧固定列this.$refs.gantt.hideColumn()
showColumn显示左侧固定列this.$refs.gantt.showColumn()
gotoToday日期列表定位到今天this.$refs.gantt.gotoToday()
reloadData甘特图加载数据Array 列表数据[]this.$refs.gantt.reloadData(Array)

数据结构示例

id、parentId、taskClass、startDate、endDate 是必须存在的对象属性
[
  {
    id : 1, // 和rowId属性保持一致,默认"id"
    parentId: null, // 和parentId属性保持一致,默认"parentId"
    taskClass: '#9254DE', // 甘特图图形颜色
    startDate: '2023-04-01', // 开始时间
    endDate: '2023-04-14', // 结束时间

    title: 'dam-7465 DevSecOps产品规划Q4', // 标题
    workDays: 1400, // 工期
    type: 'project', // 数据类型
    typeText: '产品规划',
    progress: '90%',
    delayDays: 0 // 延期天数
  },
  {
    id: 2, // 和rowId属性保持一致,默认"id"
    parentId: 1, // 和parentId属性保持一致,默认"parentId"
    taskClass: '#2681FF', // 甘特图图形颜色
    startDate: '2023-04-07', // 开始时间
    endDate: '2023-04-14', // 结束时间

    title: 'dam-10002 【一站式需求】功能优化第三版', // 标题
    workDays: 6, // 工期
    type: 'milestone', // 数据类型
    typeText: '需求',
    progress: '75%',
    delayDays: 0 // 延期天数
  },
  {
    id: 3, // 和rowId属性保持一致,默认"id"
    parentId: 2, // 和parentId属性保持一致,默认"parentId"
    taskClass: '#52C41A', // 甘特图图形颜色
    startDate: '2023-04-12', // 开始时间
    endDate: '2023-04-14', // 结束时间

    title: 'dam-10103 【后端】自测及bug修复', // 标题
    workDays: 3, // 工期
    type: 'task', // 数据类型
    typeText: '任务',
    progress: '',
    delayDays: 0 // 延期天数
  }
]
1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago