/
FlowyNewBlock.vue
56 lines (52 loc) · 1.02 KB
/
FlowyNewBlock.vue
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
<template lang="html">
<div class="flowy-block mr-24px relative">
<draggable
:with-handle="false"
:draggable-mirror="{ xAxis: false, appendTo: 'body' }"
group="flowy"
@start="onStart(nodeData)"
@stop="onStop(nodeData)"
:data="{ type: 'new', ...nodeData }"
>
<slot name="preview"></slot>
</draggable>
</div>
</template>
<script>
/* eslint-disable no-unused-vars */
export default {
props: {
},
data() {
return {
node: {
componentName: '',
props: {},
},
};
},
mounted() {
const node = this.$scopedSlots.node()[0];
this.node.componentName = node.componentOptions.tag;
this.node.props = {
...node.componentOptions.propsData,
...node.data.attrs,
};
},
destroyed() {
},
computed: {
nodeData() {
return this.node;
},
},
methods: {
onStart(data) {
this.$emit('drag-start', data);
},
onStop(data) {
this.$emit('drag-stop', data);
},
},
};
</script>