feat: 支持双列布局次级菜单折叠及三档响应式断点

This commit is contained in:
Ray.Hao
2026-07-02 20:25:51 +08:00
parent c966764314
commit cdf43ea71a
9 changed files with 130 additions and 42 deletions

View File

@@ -1,7 +1,7 @@
<template>
<div class="layout-navbar">
<div class="flex-y-center">
<Hamburger :is-active="isSidebarOpened" @toggle-click="toggleSideBar" />
<Hamburger :is-active="sidebarState.opened" @toggle-click="sidebarState.toggle" />
<Breadcrumb />
</div>
@@ -16,13 +16,25 @@ import { useAppStore } from "@/stores";
import Hamburger from "@/components/Hamburger/index.vue";
import Breadcrumb from "@/components/Breadcrumb/index.vue";
const props = withDefaults(
defineProps<{
toggleTarget?: "primary" | "secondary";
}>(),
{
toggleTarget: "primary",
}
);
const appStore = useAppStore();
const isSidebarOpened = computed(() => appStore.sidebar.opened);
function toggleSideBar() {
appStore.toggleSidebar();
}
const sidebarState = computed(() =>
props.toggleTarget === "secondary"
? {
opened: appStore.secondarySidebar?.opened ?? true,
toggle: () => appStore.toggleSecondarySidebar(),
}
: { opened: appStore.sidebar.opened, toggle: () => appStore.toggleSidebar() }
);
</script>
<style lang="scss" scoped>