Skip to content

witSideBar 侧边栏菜单

witSideBar 是一个基于 Element Plus Menu 实现的侧边栏菜单组件,支持垂直布局、折叠/展开功能和不同布局模式下的路由菜单展示。组件提供了流畅的滚动体验、响应式设计和自定义样式支持,适用于各种管理系统的导航需求。

用法实例

vue
<template>
  <div>
    <!-- 基础侧边栏菜单 -->
    <wit-side-bar />
    
    <!-- 指定布局模式的侧边栏菜单 -->
    <wit-side-bar layout="comprehensive" />
  </div>
</template>

<script lang="ts" setup>
// 组件会自动从路由和设置中获取数据
</script>

API

组件

vue
<wit-side-bar
  :layout="vertical"
/>

属性

属性名类型默认值描述
layoutStringvertical布局模式,可选值:'vertical'、'comprehensive'

插槽

插槽名描述
无自定义插槽

事件

事件名描述参数
无自定义事件-

功能特性

  1. 路由菜单展示

    • 支持根据布局模式展示不同的路由菜单
    • 全面布局模式下显示部分路由
    • 垂直布局模式下处理顶层路由的显示逻辑
    • 自动展开指定的菜单节点
  2. 折叠/展开功能

    • 支持侧边栏的折叠和展开
    • 折叠状态下提供悬浮菜单
    • 折叠/展开状态由设置存储管理
    • 集成wit-fold组件实现折叠操作
  3. 响应式设计

    • 支持不同屏幕尺寸的适配
    • 提供滚动条支持,处理长菜单内容
    • 折叠状态下的弹窗菜单样式优化
    • 无头部布局下的特殊处理
  4. 自定义样式

    • 支持主题色和背景色的自定义
    • 菜单项激活状态的高亮显示
    • 折叠状态下的特殊样式处理
    • 支持自定义图标和文字颜色
  5. 布局模式支持

    • 垂直布局(vertical):标准侧边栏布局
    • 综合布局(comprehensive):特殊的路由展示方式

菜单处理逻辑

  1. 垂直布局

    • 如果路由设置了levelHidden且有子路由,则显示子路由
    • 否则显示完整路由
  2. 综合布局

    • 直接使用部分路由列表
  3. 激活状态处理

    • 自动高亮当前激活的菜单
    • 支持唯一打开的菜单(unique-opened)
    • 自定义激活状态的样式

样式结构

  1. 基础样式

    • 固定定位的侧边栏容器
    • 自动高度计算,适配不同屏幕
    • 支持滚动条的侧边栏内容
  2. 菜单项样式

    • 自定义的菜单项高度和间距
    • 图标和文字的对齐方式
    • 激活状态和悬停状态的样式
  3. 折叠状态样式

    • 收缩的侧边栏宽度
    • 悬浮菜单的样式优化
    • 折叠按钮的位置调整

TIP

  1. 组件依赖路由配置和设置配置,需要确保应用已正确配置路由和设置存储
  2. 组件支持无头部布局,通过添加no-header类名实现
  3. 折叠状态下的弹窗菜单样式可以通过CSS变量自定义
  4. 菜单项的图标支持多种格式(ri-*、icon-*等)
  5. 组件会自动从routesStore获取路由数据,并从settingsStore获取折叠状态

湘ICP备2024070110号