0.0.1 • Published 6 years ago

@salamander.be/vue-gantt v0.0.1

Weekly downloads
152
License
MIT
Repository
github
Last release
6 years ago

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

propstypedefaultdescription
itemsArray[]A list of all items shown in the Gantt
titleString''A title shown above the Gantt
fieldsObjectfieldsA list of fields used in the header, items keys should match the header fields
levelsNumber2Item indentation levels
dateLimitNumber12Amount of dates shown in the chart
startDateStringtodayThe start date from witch the Gantt will be shown
endDateStringtoday + datelimitThe end date till witch the Gantt will be shown
canEditBooleantruewhether or not Gantt tables can be edited

Fields

keytypedescription
labelStringThe Name displayed in the header
componentStringThe vue component that should represent the cells (gantt-text, gantt-date, gantt-number)
widthNumberThe fixed cell width
placeholderStringThe 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

eventsdescription
updateTriggers whenever a cell has been updated