This commit is contained in:
f4ilji
2024-10-04 16:05:23 +05:00
parent cebc584a14
commit 77b3e3b4b1
124 changed files with 1123 additions and 587 deletions
@@ -28,7 +28,6 @@ export default {
pageItem: () => import('@/Components/BuilderUi/Pages/Blocks/PageItemBlock.vue'),
customForm: () => import('@/Components/BuilderUi/Pages/Blocks/FormBlock.vue')
};
return defineAsyncComponent(componentMap[type] || null);
},
},
@@ -9,52 +9,28 @@
</template>
<script>
import HeadingBlock from "@/Components/BuilderUi/Events/Blocks/HeadingBlock.vue";
import ParagraphBlock from "@/Components/BuilderUi/Events/Blocks/ParagraphBlock.vue";
import ClientImageSlider from "@/Components/ClientImageSlider.vue";
import ImageBlock from "@/Components/BuilderUi/Events/Blocks/ImageBlock.vue";
import FileBlock from "@/Components/BuilderUi/Events/Blocks/FileBlock.vue";
import PersonBlock from "@/Components/BuilderUi/Events/Blocks/PersonBlock.vue";
import StepperBlock from "@/Components/BuilderUi/Events/Blocks/StepperBlock.vue";
import VideoBlock from "@/Components/BuilderUi/Events/Blocks/VideoBlock.vue";
import TabBlock from "@/Components/BuilderUi/Events/Blocks/TabBlock.vue";
import PostListBlock from "@/Components/BuilderUi/Events/Blocks/PostListBlock.vue";
import PageItemBlock from "@/Components/BuilderUi/Events/Blocks/PageItemBlock.vue";
import PostItemBlock from "@/Components/BuilderUi/Events/Blocks/PostItemBlock.vue";
import {defineAsyncComponent} from "vue";
export default {
name: "PostBuilder",
components: {
FileBlock,
ImageBlock,
ClientImageSlider,
ParagraphBlock,
HeadingBlock,
PersonBlock,
StepperBlock,
VideoBlock,
TabBlock,
PostListBlock,
PageItemBlock,
PostItemBlock},
methods: {
getComponent(type) {
const componentMap = {
heading: 'HeadingBlock',
paragraph: 'ParagraphBlock',
images: 'ClientImageSlider',
image: 'ImageBlock',
files: 'FileBlock',
person: 'PersonBlock',
stepper: 'StepperBlock',
video: 'VideoBlock',
tabs: 'TabBlock',
postsList: 'PostListBlock',
postItem: 'PostItemBlock',
pageItem: 'PageItemBlock',
heading: () => import('@/Components/BuilderUi/Posts/Blocks/HeadingBlock.vue'),
paragraph: () => import('@/Components/BuilderUi/Posts/Blocks/ParagraphBlock.vue'),
images: () => import('@/Components/ClientImageSlider.vue'),
image: () => import('@/Components/BuilderUi/Posts/Blocks/ImageBlock.vue'),
files: () => import('@/Components/BuilderUi/Posts/Blocks/FileBlock.vue'),
person: () => import('@/Components/BuilderUi/Posts/Blocks/PersonBlock.vue'),
stepper: () => import('@/Components/BuilderUi/Posts/Blocks/StepperBlock.vue'),
video: () => import('@/Components/BuilderUi/Posts/Blocks/VideoBlock.vue'),
tabs: () => import('@/Components/BuilderUi/Posts/Blocks/TabBlock.vue'),
postsList: () => import('@/Components/BuilderUi/Posts/Blocks/PostListBlock.vue'),
postItem: () => import('@/Components/BuilderUi/Posts/Blocks/PageItemBlock.vue'),
pageItem: () => import('@/Components/BuilderUi/Posts/Blocks/PostItemBlock.vue'),
};
return componentMap[type] || null;
return defineAsyncComponent(componentMap[type] || null);
},
},
+4 -5
View File
@@ -1,6 +1,4 @@
<template>
<div id="open-mobile-nav" class="hs-overlay hs-overlay-open hs-overlay-open:translate-x-0 hidden [--overlay-backdrop:false] -translate-x-full fixed top-0 start-0 transition-all duration-300 transform h-full w-full z-[80] bg-white border-e" role="dialog" tabindex="-1" aria-labelledby="open-mobile-nav-label">
<div class="flex justify-between items-center py-3 px-4 border-b">
<img class="max-w-[75px] p-2"
@@ -109,10 +107,9 @@
<script>
import {Link} from "@inertiajs/vue3";
import axios from "axios";
import ClientGlobalSearch from "@/Components/ClientGlobalSearch.vue";
import BaseIcon from "@/Components/BaseComponents/BaseIcon.vue";
import jsonIcons from "@/Components/other/icons.json";
import {defineAsyncComponent} from "vue";
export default {
@@ -130,7 +127,9 @@ export default {
},
components: {
BaseIcon,
ClientGlobalSearch,
ClientGlobalSearch: defineAsyncComponent(() =>
import('@/Components/ClientGlobalSearch.vue')
),
Link,
},
methods: {
+50 -24
View File
@@ -4,36 +4,40 @@
<meta name="description" content="Your page description">
</Head>
<MainPageNavBar class="border-b" :sections="$page.props.navigation"></MainPageNavBar>
<div class="flex flex-col h-screen justify-between">
<MainPageNavBar class="border-b" :sections="$page.props.navigation"></MainPageNavBar>
<div class="max-w-[50rem] flex flex-col mx-auto size-full">
<!-- ========== HEADER ========== -->
<!-- ========== END HEADER ========== -->
<div class="max-w-[50rem] flex flex-col mx-auto size-full">
<!-- ========== HEADER ========== -->
<!-- ========== END HEADER ========== -->
<!-- ========== MAIN CONTENT ========== -->
<main class="mt-[67px]" id="content">
<div class="text-center py-10 px-4 sm:px-6 lg:px-8">
<h1 class="block text-7xl font-bold text-gray-800 sm:text-9xl">{{ title }}</h1>
<p class="mt-3 text-gray-600">Упс! Что-то пошло не так.</p>
<p class="text-gray-600">{{ description }}</p>
<div class="mt-5 flex flex-col justify-center items-center gap-2 sm:flex-row sm:gap-3">
<a :href="route('index')" class="w-full sm:w-auto py-3 px-4 inline-flex justify-center items-center gap-x-2 text-sm font-semibold rounded-lg border border-transparent bg-blue-600 text-white hover:bg-blue-700 disabled:opacity-50 disabled:pointer-events-none" href="../examples.html">
<svg class="flex-shrink-0 size-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m15 18-6-6 6-6"/></svg>
На домашнюю страницу
</a>
<!-- ========== MAIN CONTENT ========== -->
<main class="my-auto" id="content">
<div class="text-center py-10 px-4 sm:px-6 lg:px-8">
<h1 class="block text-7xl font-bold text-gray-800 sm:text-9xl">{{ title }}</h1>
<p class="text-gray-600">{{ description }}</p>
<div class="mt-5 flex flex-col justify-center items-center gap-2 sm:flex-row sm:gap-3">
<a :href="route('index')" class="w-full sm:w-auto py-3 px-4 inline-flex justify-center items-center gap-x-2 text-sm font-semibold rounded-lg border border-transparent bg-blue-600 text-white hover:bg-blue-700 disabled:opacity-50 disabled:pointer-events-none" href="../examples.html">
<svg class="flex-shrink-0 size-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m15 18-6-6 6-6"/></svg>
На домашнюю страницу
</a>
</div>
</div>
</div>
</main>
<!-- ========== END MAIN CONTENT ========== -->
</main>
<!-- ========== END MAIN CONTENT ========== -->
<!-- ========== FOOTER ========== -->
<!-- ========== FOOTER ========== -->
<!-- ========== END FOOTER ========== -->
<!-- ========== END FOOTER ========== -->
</div>
<ClientFooterDown />
</div>
<ClientFooterDown />
@@ -52,7 +56,29 @@ import {defineComponent} from "vue";
import MainPageNavBar from "@/Navbars/MainPageNavbar.vue";
export default defineComponent({
components: {MainPageNavBar}
components: {ClientFooterDown, MainPageNavBar},
props: {
status: Number,
},
computed: {
title() {
return {
503: '503',
500: '500',
404: '404',
403: '403',
}[this.status]
},
description() {
return {
503: 'Простите, мы проводим технические работы на странице.',
500: 'Упс, проблема на стороне сервера. Мы уже решаем проблему!',
404: 'Упс, страница не найдена!',
403: 'Извините, у вас нет доступа к этой секции.',
}[this.status]
},
},
})