Files
mayfly-go/mayfly_go_web/src/views/layout/index.vue

48 lines
1.6 KiB
Vue
Raw Normal View History

<template>
2023-03-15 11:41:03 +08:00
<Defaults v-if="themeConfig.layout === 'defaults'" />
<Classic v-else-if="themeConfig.layout === 'classic'" />
<Transverse v-else-if="themeConfig.layout === 'transverse'" />
<Columns v-else-if="themeConfig.layout === 'columns'" />
</template>
2023-03-15 11:41:03 +08:00
<script setup lang="ts" name="layout">
import { onBeforeMount, onUnmounted } from 'vue';
import { getLocal, setLocal } from '@/common/utils/storage.ts';
2023-03-15 11:41:03 +08:00
import { storeToRefs } from 'pinia';
import { useThemeConfig } from '@/store/themeConfig';
import Defaults from '@/views/layout/main/defaults.vue';
import Classic from '@/views/layout/main/classic.vue';
import Transverse from '@/views/layout/main/transverse.vue';
import Columns from '@/views/layout/main/columns.vue';
2023-03-15 11:41:03 +08:00
import mittBus from '@/common/utils/mitt';
const { themeConfig } = storeToRefs(useThemeConfig());
// 窗口大小改变时(适配移动端)
const onLayoutResize = () => {
if (!getLocal('oldLayout')) setLocal('oldLayout', themeConfig.value.layout);
const clientWidth = document.body.clientWidth;
if (clientWidth < 1000) {
themeConfig.value.isCollapse = false;
mittBus.emit('layoutMobileResize', {
layout: 'defaults',
clientWidth,
});
2023-03-15 11:41:03 +08:00
} else {
mittBus.emit('layoutMobileResize', {
layout: getLocal('oldLayout') ? getLocal('oldLayout') : 'defaults',
clientWidth,
});
2023-03-15 11:41:03 +08:00
}
};
2023-03-15 11:41:03 +08:00
// 页面加载前
onBeforeMount(() => {
onLayoutResize();
window.addEventListener('resize', onLayoutResize);
});
// 页面卸载时
onUnmounted(() => {
window.removeEventListener('resize', onLayoutResize);
});
</script>