后台管理左侧菜单栏

左侧菜单处理


<template>
    <el-container>
        <el-header>
            <pug-header></pug-header>
        </el-header>
        <el-container>
            <el-aside class="pug-el-aside">
                <pug-menu></pug-menu>
            </el-aside>
            <pug-tag-list></pug-tag-list>
            <el-main class="pug-el-main">
                <div class="pugcontentbox">
                   <router-view v-slot="{Component}">
                        <transition name="fade">
                            <keep-alive>
                                <component :is="Component"></component>
                            </keep-alive>
                        </transition>
                    </router-view>
                </div>
            </el-main>
        </el-container>
    </el-container>
</template>

<script setup>
// 局部注册
import { PugHeader, PugMenu, PugTagList } from '@/layouts'

</script>


<style  scoped>

    .el-menu{border-right:none!important;}
    .el-header{
        height: 48px!important;
    }
    /*左侧菜单栏 */
    .pug-el-aside{
        width: 208px !important;
        transition: all 200ms;
        background:red;
    }

    /*主题内容区域 */
    .pug-el-main{
        position: fixed;
        right:0;
        top:90px;
        height:100vh;
        left:208px;
        padding-bottom: 120px;
        background:goldenrod;
    }

    .pug-el-main::-webkit-scrollbar{width: 0px;}

    .fade-enter-from{
        opacity: 0;
    }

    .fade-enter-to{
        opacity: 1;
    }

    .fade-leave-from{
        opacity: 1;
    }

    .fade-leave-to{
        opacity: 0;
    }

    .fade-enter-active,
    .fade-leave-active{
        transition: all 200ms;
    }

    .fade-enter-active{
        transition-delay: 200ms;
    }
</style>

折叠如何开发?

  • 1: 折叠原理其实就是:把左侧菜单的宽度从 width = 208px->64px;

  • 2: 内容的距离左边位置:left = 208px->64px

  • 3: 折叠安装是在头部组件,但是控制目标是:菜单和内容区域

    • 必须在全局状态管理中才能处理了。

状态管理折叠宽度

在src/store/modules/menu.js定义sildeWidth,如下:

state() {
    return {
        // 标签导航
        menus: [],
        // 左侧菜单
        menuList: [],
        /*选中问题 */
        cpath: "",
        /*折叠 */
        slideWidth: "208px",
        /*折叠状态控制i */
        isCollapse: false,
    }
},

mutations: {
        /*折叠方法*/
        handleSlideWidth(state) {
            state.slideWidth = state.slideWidth == "208px" ? "64px" : "208px";
            state.isCollapse = state.slideWidth == "64px";
 }

给折叠按钮绑定点击事件如下:

// 导入状态管理
import { useStore } from 'vuex';
const store = useStore();
// 折叠菜单
const handleExpand = () => {
    store.commit("menu/handleSlideWidth");
}

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
后台管理系统左侧菜单栏分类是通过后端返回的menuList来确定的。在调用登录接口时,后端会返回一个menuList,然后将这个menuList存储到localStorage中。每个菜单项都有一个对应的code值,前后端需要沟通好每个code值对应的菜单项名称。在前端的power.js文件中,会从localStorage中取出menuList,并逐个判断对应的code值是否为true,如果为true,则显示该菜单项。这样就实现了根据后端返回的菜单权限来显示左侧菜单栏的分类。\[1\]在src/store/modules/menu.js文件中,还定义了slideWidth来控制左侧菜单栏的折叠状态。通过改变slideWidth的值,可以实现菜单栏的展开和折叠。\[2\]同时,给折叠按钮绑定了点击事件,点击按钮时会调用handleSlideWidth方法来改变slideWidth的值,从而实现菜单栏的折叠和展开。\[3\] #### 引用[.reference_title] - *1* [后台管理系统左侧菜单权限怎么控制](https://blog.csdn.net/Frazier1995/article/details/121161841)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [后台管理左侧菜单栏](https://blog.csdn.net/Jiaodaqiaobiluo/article/details/126266864)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙崎流河

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值