From 818f988c4be4f93d90a4a0983ee9d5bf521c7f21 Mon Sep 17 00:00:00 2001 From: lhj <403133128@qq.com> Date: Sat, 28 Sep 2024 13:59:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=97=A0=E7=94=A8=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/MainView.vue | 47 +++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/src/components/MainView.vue b/src/components/MainView.vue index 019189d..c6cd001 100644 --- a/src/components/MainView.vue +++ b/src/components/MainView.vue @@ -11,6 +11,7 @@
+
@@ -29,6 +30,7 @@
+
@@ -39,7 +41,7 @@ import { onMounted, ref } from 'vue'; import NestedFunction from './NestedFunction.vue'; import DynamicComponent from './DynamicComponent.vue'; -import { useDraggable } from 'vue-draggable-plus'; +import { SortableEvent, useDraggable, VueDraggable } from 'vue-draggable-plus'; import { uuid } from 'lsp-uuid'; import { IComponent } from '../type/IComponent.ts'; import { componentScheme } from '../schemes/scheme.ts'; @@ -48,7 +50,6 @@ const componentsList = ref([]); const list = ref([]); - const el2 = ref(); @@ -61,6 +62,48 @@ onMounted(() => { +const el = ref() + +const onStart = (e: SortableEvent) => { + console.log('start', e) +} + +const onEnd = (e: SortableEvent) => { + console.log('onEnd', e) +} + +const onUpdate = () => { + console.log('update') +} + +useDraggable(el, componentsList, { + animation: 150, + group: { name: 'designer', pull: 'clone', put: false }, + sort: false, + onClone() { + console.log('clone') + }, + clone(element: Record<'id' | 'name' | 'type' | 'children' | 'props' | 'text' | 'class' | 'style' | 'slots', any>) { + return { + id: `${element.id}-${uuid()}`, + name: element.name, + type: element.type, + props: element.props, + class: element.class, + designer: '', + text: element.text, + children: [], + style: element.style, + visible: "", + slots: element.slots, + disable: "", + events: {}, + loop: {}, + } + } +}) + + useDraggable(el2, componentsList, { animation: 150, group: { name: 'designer', pull: 'clone', put: false },