0.0.4 • Published 5 years ago

vue-dnd-kanban v0.0.4

Weekly downloads
17
License
-
Repository
-
Last release
5 years ago

vue-dnd-kanban Build Status npm version

A drag and drop kanban board component

Demo

Installation

Add vue-dnd-kanban to your project with npm

npm install vue-dnd-kanban 

... or yarn

yarn add vue-dnd-kanban

Basic Usage

Install the plugin

import vueKanban from 'vue-dnd-kanban'

Vue.use(vueKanban)

and then use the component in your project.

<kanban-board :stages="stages" :blocks="blocks"></kanban-board>

Props

  • stages: an array of stages for the kanban board
  • blocks: an array of objects that will make up the blocks on the kanban board
{
  stages: [
    {
      id: 1,
      name: 'column 1',
      bgColor: '#045DE9',
    }
  ],
  blocks: [
    {
      id: 1,
      status: 'on-hold',
      title: 'Test',
    },
  ],
}

Receiving Changes

The component will emit an event when a block is moved

<kanban-board :stages="stages" :blocks="blocks" @update-block="updateBlock"></kanban-board>
<script>
...
  methods: {
    updateBlock(id, status) {
      this.blocks.find(b => b.id === Number(id)).status = status;
    },
  },
...
</script>

Add some style

I have included a scss stylesheet in this repo as a starting point that can be used in your project

<style lang="scss">
  @import './assets/kanban.scss';
</style>

Customize the kanban blocks

Each block has a named slot which can be extended from the parent, like so...

<kanban-board :stages="stages" :blocks="blocks" @update-block="updateBlock">
  <div v-for="stage in stages" :slot="stage" :key="stage">
    <h2>{{ stage }}</h2>
  </div>
  <div v-for="block in blocks" :slot="block.id" :key="block.id">
    <div>
      <strong>id:</strong> {{ block.id }}
    </div>
    <div>
      {{ block.title }}
    </div>
  </div>
</kanban-board>
0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago