@salamander.be/vue-gantt

0.0.1 • Public • Published

vue-gantt

A Configurable Gantt chart build for Vue.

Features & characteristics

  • Customizable header fields
  • Customizable date fields
  • Simple design

Example

Vue-gantt-example

Demo

https://salamanderbe.github.io/vue-gantt/

Status

In development

Install & basic usage

npm install @salamander.be/vue-gantt

Minimum configuration

  • Items: a list of tasks shown in the Gantt chart
<template>
  <div id="app">
  	<gantt :items="items" />
  </div>
</template>

<script>
import Gantt from './components/gantt.vue'

export default {
  name: 'app',
  components: { Gantt },
  data() {
  	return {
      items: [
        { id: 1, summary: 'This is a task.', start_date: '2018-11-02 00:00', end_date: '2018-11-03 00:00', duration: 1 },
        { id: 2, summary: 'This is a task with a longer description.', start_date: '2018-11-03 00:00', end_date: '2018-11-04 00:00', duration: 1 },
        { id: 3, summary: 'You should first complete the first task.', start_date: '2018-11-04 00:00', end_date: '2018-01-11 00:00', duration: 7 },
        { id: 4, summary: 'And then, you should complete the second task.', start_date: '2018-11-07 00:00', end_date: '2018-11-09 00:00', duration: 9 },
        { id: 5, summary: 'Do not start with the last task.', start_date: '2018-11-09 00:00', end_date: '2018-11-15 00:00', duration: 6 },
        { id: 6, summary: 'It will make your project manager mad.', start_date: '2018-11-15 00:00', end_date: '2018-11-17 00:00', duration: 2 },
        { id: 7, summary: 'Very very very... mad.', start_date: '2018-11-17 00:00', end_date: '2018-11-19 00:00', duration: 2 },
        { id: 8, summary: 'But you only code once ;).', start_date: '2018-11-19 00:00', end_date: '2018-11-21 00:00', duration: 2 }
        ]
      }
  }
}
</script>

Configuration

props

props type default description
items Array [] A list of all items shown in the Gantt
title String '' A title shown above the Gantt
fields Object fields A list of fields used in the header, items keys should match the header fields
levels Number 2 Item indentation levels
dateLimit Number 12 Amount of dates shown in the chart
startDate String today The start date from witch the Gantt will be shown
endDate String today + datelimit The end date till witch the Gantt will be shown
canEdit Boolean true whether or not Gantt tables can be edited

Fields

key type description
label String The Name displayed in the header
component String The vue component that should represent the cells (gantt-text, gantt-date, gantt-number)
width Number The fixed cell width
placeholder String The text shown when the cell is empty

The default fields when no field option is provided.

{
  summary: {
    label: 'Summary',
    component: 'gantt-text',
    width: 300,
    placeholder: 'Add a new task...'
  },
  start_date: {
    label: 'Start date',
    component: 'gantt-date',
    width: 95,
    placeholder: 'Start',
    callback: 'startdateUpdated'
  },
  end_date: {
    label: 'End date',
    component: 'gantt-date',
    width: 95,
    placeholder: 'End',
    callback: 'enddateUpdated'
  },
  duration: {
    label: 'Days',
    component: 'gantt-number',
    width: 50,
    placeholder: '0',
    callback: 'durationUpdated'
  }
}

events

events description
update Triggers whenever a cell has been updated

Readme

Keywords

Package Sidebar

Install

npm i @salamander.be/vue-gantt

Weekly Downloads

90

Version

0.0.1

License

MIT

Unpacked Size

2.48 MB

Total Files

31

Last publish

Collaborators

  • frederiek
  • cyannick