Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
---
sidebar: auto
---
# Guide
## Quickstart
Install the package `vue-draggable-grid` via your favourite package manager.
Include the library in your project:
```javascript
import plugin from 'vue-draggable-grid';
Vue.use(plugin);
// Now create your app as usual
```
Inside the component where you want to use the grid define your grid and data as follows:
```vue
<template>
<drag-grid v-model="items" :cols="4" :rows="4">
<template #item="item">
{{ item.data.text }}
</template>
</drag-grid>
</template>
<script>
export default {
name: "YourComponent",
data() {
return {
items: [
{x: 1, y: 3, w: 2, h: 2, key: "item1", data: {text: "Hello world 1"},},
{x: 2, y: 2, w: 2, h: 1, key: "item2", data: {text: "Hello world 2"},},
{x: 3, y: 1, w: 1, h: 1, key: "item3", data: {text: "Hello world 3"},},
]
}
},
}
</script>
```
## Blocking fields
A field (or cell) can be blocked via the `disabledFields` prop. The prop receives an array of objects, containing the
coordinates of the blocked fields.
An example for a disabled fields property:
```javascript
disabledFields: [
{x: 1, y: 1},
{x: 2, y: 3},
]
```
## Prevent items from being dragged
To disable dragging of a specific item, simply set the attribute `disabled` of the item to `true`.
```javascript{4,5}
someDisabledItems: [
{ key: "key1", x: 1, y: 3, w: 1, h: 1, data: {} },
{ key: "key2", x: 2, y: 2, w: 1, h: 1, data: {} },
{ key: "key3", x: 3, y: 1, w: 1, h: 1, data: {}, disabled: true },
{ key: "key4", x: 1, y: 2, w: 1, h: 1, data: {}, disabled: true },
]
```
The highlighted items are not draggable.
## Disabling the grid
If the boolean property `disabled` is set for the whole grid, the grid itself is disabled,
and items can't be moved.