style(layout): 优化布局组件的模板代码格式
统一布局组件的模板缩进与换行规范,提升代码可读性,未修改业务逻辑。
This commit is contained in:
@@ -61,36 +61,24 @@ function closeSidebar() {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div
|
<div v-if="isVisible" :class="[
|
||||||
v-if="isVisible"
|
'sidebar-shell',
|
||||||
:class="[
|
`sidebar-shell--${props.navigationType}`,
|
||||||
'sidebar-shell',
|
{ 'sidebar-shell--mobile': isMobile, 'sidebar-shell--collapsed': collapsedMenu },
|
||||||
`sidebar-shell--${props.navigationType}`,
|
]">
|
||||||
{ 'sidebar-shell--mobile': isMobile, 'sidebar-shell--collapsed': collapsedMenu },
|
<button v-if="isMobile && layout.sidebarOpened" type="button" class="sidebar-overlay" aria-label="关闭侧边栏"
|
||||||
]"
|
@click="closeSidebar" />
|
||||||
>
|
|
||||||
<button
|
|
||||||
v-if="isMobile && layout.sidebarOpened"
|
|
||||||
type="button"
|
|
||||||
class="sidebar-overlay"
|
|
||||||
aria-label="关闭侧边栏"
|
|
||||||
@click="closeSidebar"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<aside
|
<aside :class="[
|
||||||
:class="[
|
'sidebar-drawer',
|
||||||
'sidebar-drawer',
|
isDark ? 'sidebar-drawer--dark' : 'sidebar-drawer--light',
|
||||||
isDark ? 'sidebar-drawer--dark' : 'sidebar-drawer--light',
|
{
|
||||||
{
|
'sidebar-drawer--mobile': isMobile,
|
||||||
'sidebar-drawer--mobile': isMobile,
|
'sidebar-drawer--open': isMobile && layout.sidebarOpened,
|
||||||
'sidebar-drawer--open': isMobile && layout.sidebarOpened,
|
'sidebar-drawer--collapsed': collapsedMenu,
|
||||||
'sidebar-drawer--collapsed': collapsedMenu,
|
},
|
||||||
},
|
]" :style="sidebarStyle" :inert="isMobile && !layout.sidebarOpened"
|
||||||
]"
|
:aria-hidden="isMobile && !layout.sidebarOpened ? 'true' : undefined">
|
||||||
:style="sidebarStyle"
|
|
||||||
:inert="isMobile && !layout.sidebarOpened"
|
|
||||||
:aria-hidden="isMobile && !layout.sidebarOpened ? 'true' : undefined"
|
|
||||||
>
|
|
||||||
<div v-if="showLogo" class="sidebar-logo" :class="{ 'sidebar-logo--collapsed': collapsedMenu }">
|
<div v-if="showLogo" class="sidebar-logo" :class="{ 'sidebar-logo--collapsed': collapsedMenu }">
|
||||||
<div class="sidebar-logo__mark" aria-hidden="true">WQ</div>
|
<div class="sidebar-logo__mark" aria-hidden="true">WQ</div>
|
||||||
<div v-if="!collapsedMenu" class="sidebar-logo__copy">
|
<div v-if="!collapsedMenu" class="sidebar-logo__copy">
|
||||||
@@ -100,27 +88,12 @@ function closeSidebar() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-scrollbar class="sidebar-scrollbar">
|
<el-scrollbar class="sidebar-scrollbar">
|
||||||
<el-menu
|
<el-menu :default-active="activePath" :collapse="collapsedMenu" :collapse-transition="false"
|
||||||
:default-active="activePath"
|
:collapse-tooltip="true" :unique-opened="true" :router="true" :background-color="menuBackgroundColor"
|
||||||
:collapse="collapsedMenu"
|
:text-color="menuTextColor" :active-text-color="menuActiveTextColor" class="sidebar-menu"
|
||||||
:collapse-transition="false"
|
@select="handleMenuSelect">
|
||||||
:collapse-tooltip="true"
|
<SidebarItem v-for="menu in menus" :key="menu.id" :menu="menu" base-path="" :collapsed="collapsedMenu"
|
||||||
:unique-opened="true"
|
:navigation-type="props.navigationType" />
|
||||||
:router="true"
|
|
||||||
:background-color="menuBackgroundColor"
|
|
||||||
:text-color="menuTextColor"
|
|
||||||
:active-text-color="menuActiveTextColor"
|
|
||||||
class="sidebar-menu"
|
|
||||||
@select="handleMenuSelect"
|
|
||||||
>
|
|
||||||
<SidebarItem
|
|
||||||
v-for="menu in menus"
|
|
||||||
:key="menu.id"
|
|
||||||
:menu="menu"
|
|
||||||
base-path=""
|
|
||||||
:collapsed="collapsedMenu"
|
|
||||||
:navigation-type="props.navigationType"
|
|
||||||
/>
|
|
||||||
</el-menu>
|
</el-menu>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</aside>
|
</aside>
|
||||||
|
|||||||
@@ -35,12 +35,8 @@ const childBasePath = computed(() => resolvedPath.value || props.basePath || "/"
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<el-sub-menu
|
<el-sub-menu v-if="menu.type === 'directory' && visibleChildren.length > 0" :index="resolvedPath || menu.id"
|
||||||
v-if="menu.type === 'directory' && visibleChildren.length > 0"
|
:aria-label="menu.name" :class="['sidebar-item', `sidebar-item--${navigationType}`]">
|
||||||
:index="resolvedPath || menu.id"
|
|
||||||
:aria-label="menu.name"
|
|
||||||
:class="['sidebar-item', `sidebar-item--${navigationType}`]"
|
|
||||||
>
|
|
||||||
<template #title>
|
<template #title>
|
||||||
<el-tooltip :content="menu.name" :disabled="!collapsed" placement="right">
|
<el-tooltip :content="menu.name" :disabled="!collapsed" placement="right">
|
||||||
<span class="sidebar-item__content">
|
<span class="sidebar-item__content">
|
||||||
@@ -49,22 +45,12 @@ const childBasePath = computed(() => resolvedPath.value || props.basePath || "/"
|
|||||||
</span>
|
</span>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</template>
|
</template>
|
||||||
<SidebarItem
|
<SidebarItem v-for="child in visibleChildren" :key="child.id" :menu="child" :base-path="childBasePath"
|
||||||
v-for="child in visibleChildren"
|
:collapsed="collapsed" :navigation-type="navigationType" />
|
||||||
:key="child.id"
|
|
||||||
:menu="child"
|
|
||||||
:base-path="childBasePath"
|
|
||||||
:collapsed="collapsed"
|
|
||||||
:navigation-type="navigationType"
|
|
||||||
/>
|
|
||||||
</el-sub-menu>
|
</el-sub-menu>
|
||||||
|
|
||||||
<el-menu-item
|
<el-menu-item v-else-if="menu.type === 'page' && resolvedPath" :index="resolvedPath" :aria-label="menu.name"
|
||||||
v-else-if="menu.type === 'page' && resolvedPath"
|
:class="['sidebar-item', `sidebar-item--${navigationType}`]">
|
||||||
:index="resolvedPath"
|
|
||||||
:aria-label="menu.name"
|
|
||||||
:class="['sidebar-item', `sidebar-item--${navigationType}`]"
|
|
||||||
>
|
|
||||||
<el-tooltip :content="menu.name" :disabled="!collapsed" placement="right">
|
<el-tooltip :content="menu.name" :disabled="!collapsed" placement="right">
|
||||||
<span class="sidebar-item__content">
|
<span class="sidebar-item__content">
|
||||||
<LayoutIcon :name="getMenuIconName(menu)" :title="collapsed ? menu.name : undefined" size="18" />
|
<LayoutIcon :name="getMenuIconName(menu)" :title="collapsed ? menu.name : undefined" size="18" />
|
||||||
|
|||||||
@@ -24,21 +24,9 @@ const isVisible = computed(() => navigationType.value === "top" || navigationTyp
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<nav v-if="isVisible" class="top-menu" aria-label="顶部导航">
|
<nav v-if="isVisible" class="top-menu" aria-label="顶部导航">
|
||||||
<el-menu
|
<el-menu mode="horizontal" :default-active="activePath" :router="true" :unique-opened="true" class="top-menu__bar">
|
||||||
mode="horizontal"
|
<SidebarItem v-for="menu in menus" :key="menu.id" :menu="menu" base-path="" :collapsed="false"
|
||||||
:default-active="activePath"
|
:navigation-type="navigationType" />
|
||||||
:router="true"
|
|
||||||
:unique-opened="true"
|
|
||||||
class="top-menu__bar"
|
|
||||||
>
|
|
||||||
<SidebarItem
|
|
||||||
v-for="menu in menus"
|
|
||||||
:key="menu.id"
|
|
||||||
:menu="menu"
|
|
||||||
base-path=""
|
|
||||||
:collapsed="false"
|
|
||||||
:navigation-type="navigationType"
|
|
||||||
/>
|
|
||||||
</el-menu>
|
</el-menu>
|
||||||
</nav>
|
</nav>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
Reference in New Issue
Block a user