diff --git a/preview/views/MainView.vue b/preview/views/MainView.vue index 970ef3a..72cd149 100644 --- a/preview/views/MainView.vue +++ b/preview/views/MainView.vue @@ -11,7 +11,7 @@
组件
-
+
{{ item.name }}
- {{list}} - - - - - - - - - - - - - - - - + {{ store.previewScheme }} + + + {{ component.id }} +
@@ -69,10 +57,11 @@ import {uuid} from 'lsp-uuid'; import {componentScheme} from "@/schemes/scheme"; import {useSchemeStore} from '@/stores/useSchemeStore'; import {IComponent} from "@/type/IComponent"; +import DynamicComponent from "@/components/DynamicComponent.vue"; -let list0=ref([]) +let list0 = ref([]) -let list=ref([]) +let list = ref([]) let componentsList = []; const store = useSchemeStore(); @@ -108,7 +97,7 @@ store.$onAction( onError, // action 抛出或拒绝的钩子 }) => { after((result) => { - console.log(`store action-${name}回调后:`+result); + console.log(`store action-${name}回调后:` + result); }) // 如果 action 抛出或返回一个拒绝的 promise,这将触发 onError((error) => { @@ -129,21 +118,21 @@ const initScheme = () => { onMounted(() => { list0.value.push( { - "id":123, - "name":"www" + "id": 123, + "name": "www" }, { - "id":125, - "name":"rrr" + "id": 125, + "name": "rrr" } ); - list.value=[] + list.value = [] initScheme(); // @ts-ignore }); -function clone (element: Record<'name' | 'id'|'type'|'props'|'class'|'text'|'style'|'slots', IComponent>) { - console.log("clone",element) +function clone(element: Record<'name' | 'id' | 'type' | 'props' | 'class' | 'text' | 'style' | 'slots', IComponent>) { + console.log("clone", element) return { id: `${element.type}-${uuid()}`, name: element.name, @@ -161,21 +150,22 @@ function clone (element: Record<'name' | 'id'|'type'|'props'|'class'|'text'|'sty loop: {}, }; } -const onEnd = (event:DraggableEvent) => { - console.log("onEnd",event) + +const onEnd = (event: DraggableEvent) => { + console.log("onEnd", event) // const {oldDraggableIndex} = obj; // store.previewData(store.component[oldDraggableIndex]); // store.nowComponentsData(store.component[oldDraggableIndex]); }; const onStart = function (event) { - console.log("onStart",event) + console.log("onStart", event) } const onPreviewStart = function (event) { - console.log("onPreviewStart",event) + console.log("onPreviewStart", event) } const onPreviewUpdate = function (event) { - console.log("onPreviewUpdate",event) + console.log("onPreviewUpdate", event) } const onPreviewStop = function (event) { diff --git a/src/stores/useSchemeStore.ts b/src/stores/useSchemeStore.ts index 2c05db5..3ee0a17 100644 --- a/src/stores/useSchemeStore.ts +++ b/src/stores/useSchemeStore.ts @@ -1,6 +1,5 @@ import {defineStore} from 'pinia' import {IPageComponent} from '@/type/IPageComponent'; -import {ref} from 'vue'; function findObjectById(obj, targetId) { if (Array.isArray(obj)) { @@ -22,28 +21,27 @@ function findObjectById(obj, targetId) { return null; // 如果没有找到,则返回null } -export const useSchemeStore = defineStore('scheme', () => { - const components = ref() - const previewScheme = ref() - const nowComponentsData = ref() +export const useSchemeStore = defineStore('scheme', { + state: () => ({ + components: [], + previewScheme: [], + nowComponentsData: {} + }), + actions: + { + initPreviewScheme(value) { + this.previewScheme = value + this.nowComponentsData = value[0] + }, + initComponents(value) { + this.components = value + }, + getSchemeObj(id) { + return findObjectById(this.previewScheme, id) + }, + updateScheme() { - function initPreviewScheme(value) { - previewScheme.value = value - nowComponentsData.value=value[0] - } + } - - function initComponents(value:IPageComponent[]) { - components.value = value - } - - function getSchemeObj(id) { - return findObjectById(previewScheme.value, id) - } - - function updateScheme() { - - } - - return {previewScheme, components, nowComponentsData, initComponents, initPreviewScheme, getSchemeObj, updateScheme} + } }) \ No newline at end of file