个人博客——后台管理布局

总体布局

后台管理的总体布局,采用element-plus的这个布局
在这里插入图片描述

<template>
    <div class="common-layout">
      <el-container>
        <el-header>Header
            <p>
            <router-link to="/toLogin">去登录页</router-link>
            </p>
        </el-header>
        <el-container>
          <el-aside width="200px">Aside</el-aside>
          <el-main>Main</el-main>
        </el-container>
      </el-container>
    </div>
  </template>

在这里插入图片描述

直接从elemen复制的代码不能撑满整个页面,需要加点样式

.common-layout{
    /* 令整个容器高度为窗口的100%
        vh只能用于高度设置 */
    height: 100vh;
    box-sizing: border-box;
}

.el-container{
    /*高度为父元素的100%*/
    height: 100%;
}

添加样式后效果如下
在这里插入图片描述

侧边栏

  1. 将侧边栏封装成组件
    在components中新建文件夹backComponents,用于存放和后台相关的组件,新建Aside.vue,从element中复制侧边栏相关代码填入
    在这里插入图片描述
    代码如下
<template>
      <el-menu
        default-active="2"
        class="el-menu-vertical-demo"
        active-text-color="#fe6004"
        background-color="#206b52"
        text-color="#fff"
      >
        <el-sub-menu index="1">
          <template #title>
            <el-icon><location /></el-icon>
            <span>Navigator One</span>
          </template>
          <el-menu-item-group title="Group One">
            <el-menu-item index="1-1">item one</el-menu-item>
            <el-menu-item index="1-2">item two</el-menu-item>
          </el-menu-item-group>
          <el-menu-item-group title="Group Two">
            <el-menu-item index="1-3">item three</el-menu-item>
          </el-menu-item-group>
          <el-sub-menu index="1-4">
            <template #title>item four</template>
            <el-menu-item index="1-4-1">item one</el-menu-item>
          </el-sub-menu>
        </el-sub-menu>
        <el-menu-item index="2">
          <el-icon><icon-menu /></el-icon>
          <span>Navigator Two</span>
        </el-menu-item>
        <el-menu-item index="3" disabled>
          <el-icon><document /></el-icon>
          <span>Navigator Three</span>
        </el-menu-item>
        <el-menu-item index="4">
          <el-icon><setting /></el-icon>
          <span>Navigator Four</span>
        </el-menu-item>
      </el-menu>
</template>

<script setup lang="ts">

</script>

<style scoped>

</style>
  1. 在BackendHome.vue引入并侧边栏组件
<template>
    <div class="common-layout">
      <el-container class="myborder">
        <el-header class="myborder">Header
            <p>
            <router-link to="/toLogin">去登录页</router-link>
            </p>
        </el-header>
        <el-container>
          <el-aside class="myborder" width="200px">
            <Aside>
            </Aside>
          </el-aside>
          <el-main class="myborder">Main</el-main>
        </el-container>
      </el-container>
    </div>
  </template>

<script setup lang="ts">
import Aside from '../../components/backComponents/Aside.vue'

</script>

引入完成,效果如下
在这里插入图片描述

动态渲染菜单栏

需求:

  • 根据路由配置,动态渲染菜单栏
  • 只渲染后台管理的路由
  • 有些后台管理的二级路由中还有三级路由
  1. 后台路由配置如下
 {
    path: '/BackendHome',
    name: 'BackendHome',
    component:BackendHome,
    children:[
      {
        path: '/BackendHome',
        name: '首页',
        component:BackHome,
      },
      {
        path: '',
        name: '博客',
        children:[
          {
            path: '/BackendHome/BlogAdd',
            name: '添加博客',
            component:BlogAdd,
          },
        ]
      },
      {
        path: '/BackendHome/UserManage',
        name: '用户管理',
        component:UserManage,
      },
     
    ]
  },
  1. el-menu读取路由列表后进行渲染
<template>
      <el-menu
        router
        default-active="2"
        class="el-menu-vertical-demo"
        active-text-color="#fe6004"
        background-color="#206b52"
        text-color="#fff"
      >
          
 <!-- 只渲染路由列表中的后台管理路由 -->
        <template v-for="item in $router.options.routes[2].children">
           <!-- 如果二级路由中包含三级路由 -->
          <el-sub-menu v-if="item.children != null " :index="item.path">
            <template #title>
              <span>{{ item.name }}</span>
            </template>
            <!-- 渲染三级路由 -->
            <el-menu-item v-for="t in item.children" :index="t.path">{{ t.name }}</el-menu-item>
          </el-sub-menu>
          <!-- 如果二级路由中不包含三级路由 -->
           <el-menu-item v-else :index="item.path">{{ item.name }}</el-menu-item>
        </template>
            
      </el-menu>
</template>

至此根据路由动态渲染菜单栏就完成了
在这里插入图片描述

给菜单栏添加图标

给一级菜单添加图标,因为是通过for循环渲染的菜单,所以把要添加的图标名放在一个数组中,在渲染菜单时读取渲染。

  1. 根据菜单渲染顺序设置图标名数组
const iconList = ref(['house','Document','user']);
  1. 在渲染菜单时读取图标数组
<el-menu
        router
        class="el-menu-vertical-demo"
        active-text-color="#fe6004"
        background-color="#206b52"
        text-color="#fff"
      >
           <!-- 只渲染路由列表中的后台管理路由 -->
        <template v-for="(item,index) in $router.options.routes[2].children">
           <!-- 如果二级路由中包含三级路由 -->
          <el-sub-menu v-if="item.children != null " :index="item.path">
            <template #title>
            //图标
              <el-icon>
                <component :is="iconList[index]"></component>
              </el-icon>
              <span>{{ item.name }}</span>
            </template>
            <!-- 渲染三级路由 -->
            <el-menu-item v-for="t in item.children" :index="t.path">{{ t.name }}</el-menu-item>
          </el-sub-menu>
          <!-- 如果二级路由中不包含三级路由 -->
           <el-menu-item v-else :index="item.path">
           //图标
            <el-icon>
                <component :is="iconList[index]"></component>
              </el-icon>{{ item.name }}
            </el-menu-item>
        </template>
            
      </el-menu>

添加效果如下
在这里插入图片描述
如果要给二级菜单也设置图标,那就再设置一个图标数组。

参考文章1
参考文章2
参考视频

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
商城后台管理系统的库存管理模块负责对商品库存进行管理和监控。根据引用中提供的信息,该商城后台主要分为基础模块、会员管理、商品管理、订单管理、系统管理和数据统计六大模块。 在商品管理模块中,库存管理是其中的一个重要功能。具体来说,库存管理模块包括以下几个主要功能: 1. 商品库存添加和修改:管理员可以通过该功能添加新的商品库存信息,包括商品名称、库存数量、价格等。同时,也可以对已有商品的库存进行修改,例如更新库存数量。 2. 商品库存上架和下架:管理员可以通过该功能对商品的库存进行上架和下架操作。上架后的商品将在商城展示给用户,而下架的商品将不再显示。 3. 库存分类管理:为了更好地组织和管理商品库存,可以对商品进行分类。管理员可以创建、编辑和删除不同的商品分类,以便更方便地进行库存管理和检索。 以上是库存管理模块的主要功能。请注意,具体的功能设计和实现可能会根据实际需求和技术选择有所不同。另外,根据引用的内容,库存管理模块可能在商品管理主页面的product.jsp中进行展示。 至于具体的实现和技术细节,由于提供的信息不够详细,无法给出具体的建议。如果需要了解更多关于商城后台管理系统的库存管理模块的信息,建议参考相关开发文档或向负责开发的人员进行咨询。如引用提供的链接中可能包含有关Git上传功能模块的相关信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值