@fmdevui/fm-dev
Version:
Page level components developed based on Element Plus.
65 lines (60 loc) • 2.69 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var pinia = require('pinia');
require('../stores/index.js');
require('../utils/index.js');
var index$1 = require('../utils/emit/index.js');
require('./main/defaults.vue.js');
require('./main/classic.vue.js');
require('./main/transverse.vue.js');
require('./main/columns.vue.js');
var columns_vue_vue_type_script_setup_true_name_layoutColumns_lang = require('./main/columns.vue2.js');
var transverse_vue_vue_type_script_setup_true_name_layoutTransverse_lang = require('./main/transverse.vue2.js');
var classic_vue_vue_type_script_setup_true_name_layoutClassic_lang = require('./main/classic.vue2.js');
var defaults_vue_vue_type_script_setup_true_name_layoutDefaults_lang = require('./main/defaults.vue2.js');
var themeConfig = require('../stores/themeConfig.js');
var index = require('../utils/storage/index.js');
var _sfc_main = /* @__PURE__ */ vue.defineComponent({
__name: "layout",
setup(__props) {
const layouts = {
defaults: defaults_vue_vue_type_script_setup_true_name_layoutDefaults_lang.default,
classic: classic_vue_vue_type_script_setup_true_name_layoutClassic_lang.default,
transverse: transverse_vue_vue_type_script_setup_true_name_layoutTransverse_lang.default,
columns: columns_vue_vue_type_script_setup_true_name_layoutColumns_lang.default
};
const storesThemeConfig = themeConfig.useThemeConfig();
const { themeConfig: themeConfig$1 } = pinia.storeToRefs(storesThemeConfig);
let maxClientWidth = document.body.clientWidth;
const onLayoutResize = () => {
if (!index.Local.get("oldLayout")) index.Local.set("oldLayout", themeConfig$1.value.layout);
const clientWidth = document.body.clientWidth;
if (maxClientWidth > clientWidth) return;
maxClientWidth = clientWidth;
if (clientWidth < 1e3) {
themeConfig$1.value.isCollapse = false;
index$1.default.emit("layoutMobileResize", {
layout: "defaults",
clientWidth
});
} else {
index$1.default.emit("layoutMobileResize", {
layout: index.Local.get("oldLayout") ? index.Local.get("oldLayout") : themeConfig$1.value.layout,
clientWidth
});
}
};
vue.onBeforeMount(() => {
onLayoutResize();
window.addEventListener("resize", onLayoutResize);
});
vue.onUnmounted(() => {
window.removeEventListener("resize", onLayoutResize);
});
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(layouts[vue.unref(themeConfig$1).layout]));
};
}
});
exports.default = _sfc_main;