39 lines
1.1 KiB
Vue
39 lines
1.1 KiB
Vue
<script setup lang="ts">
|
|
import _cloneDeep from 'lodash/cloneDeep';
|
|
|
|
import DynamicTemplate from "~/components/dynamic-page/page/templates/index.vue";
|
|
import DynamicSection from "~/components/dynamic-page/page-section/templates/index.vue";
|
|
|
|
import { useDynamicPageStore } from '~/stores/dynamic-page';
|
|
const { currentPage, sectionPublished, componentPublished } = storeToRefs(useDynamicPageStore());
|
|
|
|
const store = reactive({
|
|
dynamicPage: useDynamicPageStore(),
|
|
});
|
|
|
|
const loadData = async () => {
|
|
store.dynamicPage.fetchPageById(1);
|
|
|
|
store.dynamicPage.setSectionPublished();
|
|
store.dynamicPage.setComponentPublished()
|
|
}
|
|
await loadData()
|
|
|
|
|
|
</script>
|
|
|
|
<template>
|
|
<main class="h-screen" v-if="currentPage">
|
|
<DynamicTemplate :settings="currentPage.settings">
|
|
<template v-if="sectionPublished && sectionPublished.length > 0">
|
|
<DynamicSection
|
|
v-for="(section, index) in sectionPublished"
|
|
:key="index"
|
|
:settings="section.settings"
|
|
:content="section.content ? JSON.parse(section.content) : null"
|
|
:section="section"
|
|
/>
|
|
</template>
|
|
</DynamicTemplate>
|
|
</main>
|
|
</template> |