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 @@
@@ -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 },