Files
new_wms_admin/src/layouts/indexAsync.vue
2025-09-16 16:38:30 +08:00

35 lines
1.1 KiB
Vue

<!-- 💥 这里是异步加载 LayoutComponents -->
<template>
<suspense>
<template #default>
<component :is="LayoutComponents[layout]" />
</template>
<template #fallback>
<Loading />
</template>
</suspense>
</template>
<script setup lang="ts" name="layoutAsync">
import { computed, defineAsyncComponent, type Component } from "vue";
// import { LayoutType } from "@/stores/interface";
import { useGlobalStore } from "@/stores/modules/global";
import Loading from "@/components/Loading/index.vue";
const LayoutComponents: Record<any, Component> = {
vertical: defineAsyncComponent(() => import("./LayoutVertical/index.vue")),
classic: defineAsyncComponent(() => import("./LayoutClassic/index.vue")),
transverse: defineAsyncComponent(() => import("./LayoutTransverse/index.vue")),
columns: defineAsyncComponent(() => import("./LayoutColumns/index.vue"))
};
const globalStore = useGlobalStore();
const layout = computed(() => globalStore.layout);
</script>
<style scoped lang="scss">
.layout {
min-width: 730px;
}
</style>