Skip to content
Snippets Groups Projects

Resolve "Implement basic functionality"

Merged Julian requested to merge 1-implement-basic-functionality into main
2 files
+ 54
1
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 26
1
@@ -20,7 +20,7 @@
@@ -20,7 +20,7 @@
:data="getObject('data', item)"
:data="getObject('data', item)"
:context="context"
:context="context"
:grid-id="gridId"
:grid-id="gridId"
:disabled="disabled"
:disabled="disabled || item.disabled"
>
>
<slot v-bind="transformItem(item)" :raw-item="item" name="item">
<slot v-bind="transformItem(item)" :raw-item="item" name="item">
<dl>
<dl>
@@ -35,6 +35,16 @@
@@ -35,6 +35,16 @@
</dl>
</dl>
</slot>
</slot>
</DragContainer>
</DragContainer>
 
<template v-for="disabledField in disabledFields">
 
<GridItem
 
class="disabledField"
 
:x="disabledField.x"
 
:y="disabledField.y"
 
:key="disabledField"
 
>
 
<slot name="disabledField"></slot>
 
</GridItem>
 
</template>
<slot></slot>
<slot></slot>
</div>
</div>
</template>
</template>
@@ -42,10 +52,12 @@
@@ -42,10 +52,12 @@
<script>
<script>
import DragContainer from "./DragContainer.vue";
import DragContainer from "./DragContainer.vue";
import { v4 as uuidv4 } from "uuid";
import { v4 as uuidv4 } from "uuid";
 
import GridItem from "./GridItem.vue";
export default {
export default {
name: "DragGrid",
name: "DragGrid",
components: {
components: {
 
GridItem,
DragContainer,
DragContainer,
},
},
emits: ["input", "itemChanged"],
emits: ["input", "itemChanged"],
@@ -92,6 +104,11 @@ export default {
@@ -92,6 +104,11 @@ export default {
required: false,
required: false,
default: false,
default: false,
},
},
 
disabledFields: {
 
type: Array,
 
required: false,
 
default: () => [],
 
},
},
},
methods: {
methods: {
positionAllowed(x, y, key) {
positionAllowed(x, y, key) {
@@ -99,6 +116,14 @@ export default {
@@ -99,6 +116,14 @@ export default {
if (x > this.cols) return false;
if (x > this.cols) return false;
if (y > this.rows) return false;
if (y > this.rows) return false;
 
if (
 
this.disabledFields.filter((field) => field.x === x && field.y === y)
 
.length > 0
 
) {
 
// Field is disabled
 
return false;
 
}
 
for (let item of this.value) {
for (let item of this.value) {
if (key === item.key) continue;
if (key === item.key) continue;
if (
if (
Loading