Newer
Older
<div @dragstart="handleDragStart" :draggable="!isDisabled" id="wrapper">
</div>
</template>
<script>
export default {
name: "DragContainer",
methods: {
handleDragStart(event) {
"vueDrag/gridItem",
JSON.stringify({
key: this.dragID,
x: this.x,
y: this.y,
w: this.w,
h: this.h,
x: Number,
y: Number,
w: Number,
h: Number,
gridId: String,
disabled: Boolean,
},
computed: {
isInGrid() {
return this.x >= 0 && this.y >= 0;
},
isNotInGrid() {
return this.x === -1 || this.y === -1;
},
getX() {
return this.x === 0 ? "auto" : this.x;
},
getY() {
return this.y === 0 ? "auto" : this.y;
},
getDisplay() {
return this.isInGrid ? "block" : "none";
},
isDisabled() {
return this.disabled || this.isNotInGrid;
},
grid-column: v-bind(getX) / span v-bind(w);
grid-row: v-bind(getY) / span v-bind(h);
display: v-bind(getDisplay);